利用fileupload组件在项目中实现上传

来源:互联网 发布:陪我聊天软件 编辑:程序博客网 时间:2024/04/30 09:10

1、上传页面 ,注意的两点,一是method要为post,二是enctype等于multipart/form-data

<form action="servlet/item/UploadItemServlet" method="post"enctype="multipart/form-data" name="form1"><input type="file" name="file"><input type="submit" name="Submit" value="upload"></form>

2、servlet

public class UploadItemServlet extends HttpServlet {private String uploadPath = "D:\\"; // 用于存放上传文件的目录private File tempPath = new File("D:\\tmp\\"); // 用于存放临时文件的目录public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {//如果文件夹不存在就创建一个if(!tempPath.exists()){tempPath.mkdir();}DiskFileItemFactory factory = new DiskFileItemFactory();// setSizeThreshold方法用于设置是否将上传文件已临时文件的形式保存在磁盘的临界值(以字节为单位的int值),//如果从没有调用该方法设置此临界值,将会采用系统默认值10KB。对应的getSizeThreshold()方法用来获取此临界值。factory.setSizeThreshold(4096);System.getProperty("java.io.tmpdir");// setRepositoryPath方法用于设置当上传文件尺寸大于setSizeThreshold方法设置的临界值时,//将文件以临时文件形式保存在磁盘上的存放目录。有一个对应的获得临时文件夹的 File getRespository() 方法。        //注意:当从没有调用此方法设置临时文件存储目录时,默认采用系统默认的临时文件路径,可以通过系统属性 java.io.tmpdir 获取factory.setRepository(tempPath);ServletFileUpload upload = new ServletFileUpload(factory);upload.setSizeMax(1024 * 1024 * 20);//设置最大上传20MList fileItems;try {fileItems = upload.parseRequest(req);for (Iterator iter = fileItems.iterator();iter.hasNext();) {FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息if (!item.isFormField()) {String fileName = item.getName();long size = item.getSize();if ((fileName == null || fileName.equals("")) && size == 0)continue;//截取  F:\相册\2014\20140706_145414.jpgfileName = fileName.substring(fileName.lastIndexOf("\\")+1,fileName.length());item.write(new File(uploadPath + fileName));}}} catch (Exception e) {e.printStackTrace();}}}

3配置文件

<servlet><servlet-name>UploadItemServlet</servlet-name><servlet-class>com.study.drp.basedata.web.UploadItemServlet</servlet-class></servlet><servlet-mapping><servlet-name>UploadItemServlet</servlet-name><url-pattern>/servlet/item/UploadItemServlet</url-pattern></servlet-mapping>


0 0
原创粉丝点击