使用servlet保存用户上传的文件到本地
2011-09-02 11:08
387 查看
upload.jsp
web.xml
AddDataServlet.java
<%@page contentType="text/html;charset=utf-8" %> <head> <title>fbysss UploadBean 示例</title> <!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"--> <!--meta http-equiv="Content-Type" content="text/html; charset=gb2312"--> </head> <FORM name="form1" METHOD="POST" ACTION="adddata" ENCTYPE="multipart/form-data"> 附件 <input name="attach" type="FILE" id="attach" size="50" /> <input name="ok" type= "submit" value="提交"> </form>
web.xml
<servlet> <servlet-name>AddDataServlet</servlet-name> <servlet-class>com.upload.action.AddDataServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AddDataServlet</servlet-name> <url-pattern>/adddata</url-pattern> </servlet-mapping>
AddDataServlet.java
package com.upload.action; 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.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class AddDataServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String tempDirectory = "d:/temp/"; //要在最后加上斜杠:temp/,缓存文件目录 try { int sizeThreshold = 1024 * 64; //写满该大小的缓存后,存入硬盘中。 File repositoryFile = new File(tempDirectory); FileItemFactory factory = new DiskFileItemFactory(sizeThreshold, repositoryFile); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("utf-8"); //设置字符编码 upload.setSizeMax(50 * 1024 * 1024); // set every upload file'size less than 50M List items = upload.parseRequest(request); //这里开始执行上传 Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); //FileItem就是表示一个表单域。 if(item.isFormField()){ //isFormField方法用于判断FileItem是否代表一个普通表单域(即非file表单域) System.out.println("***"+item.getFieldName()); }else { //String fieldName = item.getFieldName(); //获取表单域name属性的值 //String fileName = item.getName(); //返回该文件在客户机上的文件名。e.g: e:\dianying\\video\1.wmv //System.out.println("*****"+fieldName); //System.out.println("*****"+fileName); String path = item.getName(); String fileName = path.substring(path.lastIndexOf("\\")); File uploadedFile = new File("d:/video/" + fileName); item.write(uploadedFile); } } } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 使用Servlet实现的包括文件上传的用户管理系统
- Dynemic Web Project中使用servlet的 doGet()方法接收来自浏览器客户端发送的add学生信息形成json字符串输出到浏览器并保存到本地磁盘文件
- 快速浏览Silverlight3 Beta:使用SaveFileDialog保存到本地文件
- Linux下使用命令上传本地文件、下载服务器文件
- 使用URLConnection下载文件或图片并保存到本地
- 在Servlet中使用开源fileupload包实现文件上传功能
- 使用vsftpd搭建ftp,用户无法上传文件
- 使用Git上传本地项目文件带代码托管平台
- 使用FileUpload实现Servlet的文件上传
- cookies的简单使用 客户端保存临时数据和上传文件的就Query.uploadify(2.xx版本)的使用
- 使用git将本地文件上传到github
- Linux的vsftp使用默认root用户上传文件
- springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?
- iOS在更改用户头像并保存至本地沙盒目录中对于UIImagePickerController、UIAlertController的使用
- 使用jspsmartupload组件在servlet里面上传文件
- 关于使用java从http接口取数据保存到本地文件的中文乱码处理
- 快速浏览Silverlight3 Beta:使用SaveFileDialog保存到本地文件
- 在Servlet中使用开源fileupload包实现文件上传功能
- WinForm中使用XML文件存储用户配置及操作本地Config配置文件(zt)
- springmvc文件上传,使用它的MultipartHttpServletRequest,tomcat中正常,resion中报错