Java apache上传文件

来源:互联网 发布:可口可乐表白软件 编辑:程序博客网 时间:2024/05/01 04:06
package com.food.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.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;public class FileUploadServlet extends HttpServlet {private static final long serialVersionUID = 1L;private File uploadPath;private File tempPath;public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {//判断是否是多数据段提交格式boolean isMultipart = ServletFileUpload.isMultipartContent(req);if(isMultipart){DiskFileItemFactory factory = new DiskFileItemFactory();// 设置文件的下限factory.setSizeThreshold(4096);// 设置中转目录factory.setRepository(tempPath);ServletFileUpload upload = new ServletFileUpload(factory);//设置上传文件的上限upload.setSizeMax(1000000 * 20);try {List<?> fileItems = upload.parseRequest(req);String itemNo = "";for (Iterator<?> iter = fileItems.iterator(); iter.hasNext();) {FileItem item = (FileItem) iter.next();////是普通的表单输入域//if(item.isFormField()) {//if ("ceshi".equals(item.getFieldName())) {//itemNo = item.getString();//System.out.println("这是我的测试-------" + item.getFieldName());//}//}//是否为input="type"输入域if (!item.isFormField()) {String fileName = item.getName();long size = item.getSize();if ((fileName == null || fileName.equals("")) && size == 0) {continue;}//截取字符串 如:C:\WINDOWS\Debug\PASSWD.LOGfileName = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());item.write(new File(uploadPath, fileName));if(fileName.contains(".gif")){req.setAttribute("upload", "yes");req.setAttribute("imageName", fileName);}else if(!"".equals(fileName)){req.setAttribute("upload", "err");}req.getRequestDispatcher("seller.jsp").forward(req, res);}}//res.sendRedirect(req.getContextPath() + "/index.jsp");} catch (Exception e) {e.printStackTrace();}}} protected void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {doPost(req, res);}public void init() throws ServletException {uploadPath = new File(getServletContext().getRealPath("upload"));System.out.println("uploadPath=====" + uploadPath);//如果目录不存在if (!uploadPath.exists()) {//创建目录uploadPath.mkdir();}//临时目录tempPath = new File(getServletContext().getRealPath("temp"));if (!tempPath.exists()) {tempPath.mkdir();}}}

0 0