web 项目中的文件上传服务器的代码实现
2008-09-07 20:57
525 查看
java web 中文件上传的实现
1,view层<%@ page language="java" import="java.util.*"
contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<html>
<body>
<form action="servlet/UpDownLoadFile" enctype="multipart/form-data"
method="post">
<input type="text" name="username" />
<br />
<input type="file" name="myfile" />
<br />
<input type="file" name="myfile" />
<br />
<input type="submit" />
</form>
<br />
</body>
</html>
2,文件上传类File_upload
package file_upload;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
public class File_upload {
private String dir_name = "BooksImage";
public HashMap begin_upload(HttpServletRequest request,
HttpServletResponse response) {
HashMap param_hm = new HashMap();
try {
// jsp file encode utf-8 must
request.setCharacterEncoding("utf-8");
RequestContext requestContext = new ServletRequestContext(request);
if (FileUpload.isMultipartContent(requestContext)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
File temp_file = new File(request.getRealPath("") + "//"
+ getDir_name() + "//");
temp_file.mkdir();
factory.setRepository(temp_file);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");
upload.setSizeMax(-1);
List items = new ArrayList();
items = upload.parseRequest(request);
Iterator it = items.iterator();
while (it.hasNext()) {
FileItem fileItem = (FileItem) it.next();
if (fileItem.isFormField()) {
param_hm.put(fileItem.getFieldName(), new String(
fileItem.getString().getBytes("iso8859-1"),
"utf-8"));
} else {
if (fileItem.getName() != null
&& fileItem.getSize() != 0) {
File fullFile = new File(fileItem.getName());
File newFile = new File(request.getRealPath("")
+ "//" + getDir_name() + "//"
+ fullFile.getName());
fileItem.write(newFile);
} else {
System.out.println("文件没有选择 或 文件内容为空");
}
}
}
}
} catch (UnsupportedEncodingException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return param_hm;
}
public void setDir_name(String dir_name) {
this.dir_name = dir_name;
}
public String getDir_name() {
return dir_name;
}
}
备注:private String dir_name = "BooksImage";此处成员变量,代表你上传时将在服务器你的项目目录:WEB-INF吓创建一个以此变量名称一样的文件夹作为用户上传目录,如果此目录存在,不会创建,直接将文件写入!是不是使用啊!
使用这个类需要file_upload.jar包:下载地址:http://download.csdn.net/source/337184
相关文章推荐
- 服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上传(含服务器,web版和android客户端完整代码)
- goAhead上实现文件上传到嵌入式web服务器上
- C#实现Web文件上传的两种方法实例代码
- webuploader+springmvc实现多文件上传(html+js+css原创,后台代码借鉴)
- goAhead上实现文件上传到嵌入式web服务器上
- goAhead上实现文件上传到嵌入式web服务器上
- 使用CGIC实现Web文件上传的服务端代码
- Java代码实现FTP服务器上传文件与下载文件
- FTP服务器文件上传的代码实现
- Linux实现文件上传ftp服务器脚本代码
- AJAX和JSP实现的基于WEB的文件上传的进度控制代码第1/2页
- php实现web页面文件上传的代码
- java+jsp代码实现从FTP服务器上传下载文件
- asp.net web实现ftp上传代码 (解决大文件上传问题)
- SpringMVC创建web项目基础之(三)——Spring MVC实现文件上传
- web项目中将上传的文件保存到服务器的某个文件夹,保证clean tomcat时不会被清理掉
- java web 一行代码实现文件上传下载
- 使用CGIC实现Web文件上传的服务端代码
- Javaweb上传图片或文件到服务器,Tomcat服务器重新部署项目,会删除原来上传的文件的问题
- 利用HTTP协议实现Android文件上传至WEB服务器,采用PHP接收文件(参考网上自己实现)