您的位置:首页 > 编程语言 > Java开发

jsp+servlet+javaBean实现上传功能

2013-03-26 12:30 579 查看
本人最近刚学了javaWeb,随手做了一个上传功能

Fileupload.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@page import="java.util.*"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<base href="<%=basePath%>">

<title>上传文件</title>

</head>

<body>

<%

request.setCharacterEncoding("GBK");

%>

<div id="main">

<form action="UploadServlet" method="post"

enctype="multipart/form-data" name="from1">

<center>

<p>选择要上传的文件,文件类型是Word、PDF等</p>

编  号:<input type="text" name="file"><br> <br>

请选择文件:<input type="file" name="file"><br> <br> <input

type="submit" value="上传"> <input type="reset" value="重置">

</center>

</form>

</div>

</body>

</html>

UploadServlet.java

package org.mvc.servlet;

import java.io.File;

import java.io.IOException;

import java.util.Iterator;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

@SuppressWarnings("serial")

public class UploadServlet extends HttpServlet {

public void doGet(HttpServletRequest req,

HttpServletResponse resp) throws ServletException, IOException {

doPost(req, resp);

}

@SuppressWarnings("unchecked")

public void doPost(HttpServletRequest req,

HttpServletResponse resp) throws ServletException, IOException {

req.setCharacterEncoding("GBK");

String realPath=this.getServletContext().getRealPath("/saveDir");//上传文件存放目录

String temp=getServletContext().getRealPath("/")+"temp";//临时目录

System.out.println("上传文件存放目录: "+realPath);

File f = new File(realPath) ;

if(!f.exists()){

f.mkdir() ;

}

// boolean isMultipart=ServletFileUpload.isMultipartContent(req);

// if(!isMultipart)

// return;

DiskFileItemFactory factory=new DiskFileItemFactory();//创建磁盘工厂

factory.setSizeThreshold(3*1024);//设置缓冲区的大小,此处为3MB

//factory.setRepository(new File(this.getServletContext().getRealPath("/")+"saveDir"));

//设置临时文件夹

factory.setRepository(new File(realPath)); //设置上传文件的目的地

ServletFileUpload upload=new ServletFileUpload(factory);//创建处理工具,产生servlet上传对象

upload.setFileSizeMax(3145728);//设置最大上传大小为3MB

List<FileItem> items=null;

try {

items=upload.parseRequest(req);//接收全部内容

} catch (FileUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

List<FileItem> list = upload.parseRequest(req); //取得所有的上传文件信息

Iterator<FileItem> it = list.iterator();

while(it.hasNext()){

FileItem item = it.next();

if(item.isFormField()==false){ //不是一个普通的表单对象

String fieldName = item.getFieldName();

String fileName = item.getName(); //文件名

String contentType = item.getContentType(); //文件类型

boolean isInMemory = item.isInMemory(); //是否是保存在内存中

long sizeInBytes = item.getSize();

//取文件名

fileName=fileName.substring(fileName.lastIndexOf("\\")+1,fileName.length());

if(!fileName.equals("")&&!(fileName==null)){//如果fileName为null,即没有上传文件

File uploadedFile = new File(realPath,fileName);

try {

item.write(uploadedFile);

} catch (Exception e) {

e.printStackTrace();

}

}

}else{ //取得普通的对象[对于像文本框这种类型的使用]

if(item.getFieldName().equals("userName")){

System.out.println("我的测试:"+item.getString());

}

}

}

} catch (FileUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

req.getRequestDispatcher("jsp/succes.jsp").forward(req, resp);

}

}

Fileupload.java

package org.mvc.vo;

public class Fileupload {

private String fileId;

private String fileName;

public String getFileId() {

return fileId;

}

public void setFileId(String fileId) {

this.fileId = fileId;

}

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: