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

java web 上传文件

2015-07-25 01:18 555 查看
需要两个JAR
commons-fileupload
commons-io
package servlet;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;public class upload extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubString path=this.getServletContext().getRealPath("/store");File file = new File(path);//判断上传文件的保存目录是否存在if (!file.exists() && !file.isDirectory()) {System.out.println(path+"目录不存在,需要创建");//创建目录file.mkdir();}String succeed="";DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();ServletFileUpload servletFileUpload=new ServletFileUpload(diskFileItemFactory);servletFileUpload.setHeaderEncoding("UTF-8");if (!ServletFileUpload.isMultipartContent(req)) {//非上传,则按非上传的方式处理return;}try {ArrayList<FileItem>list=(ArrayList<FileItem>) servletFileUpload.parseRequest(req);for (FileItem item:list) {if (item.isFormField()) {String name=item.getFieldName();String value=item.getString("UTF-8");}else {String fname=item.getName();//为了文件名不相同,可以在文件名前+用户名fname=fname.substring(fname.lastIndexOf("\\")+1);InputStream in = item.getInputStream();FileOutputStream out = new FileOutputStream(path + "\\" + fname);byte buffer[] = new byte[1024];int len = 0;while((len=in.read(buffer))>0){out.write(buffer, 0, len);}in.close();out.close();item.delete();succeed="文件上传成功";}}} catch (FileUploadException e) {// TODO Auto-generated catch blocksucceed="文件上传失败";e.printStackTrace();}req.setAttribute("succeed", succeed);req.getRequestDispatcher("/succeed.jsp").forward(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubdoGet(req, resp);}}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head></head><body>${succeed}</body></html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'upload.jsp' starting page</title></head><body><form action="${pageContext.request.contextPath}/servlet/upload" enctype="multipart/form-data" method="post">上传文件2:<input type="file" name="file2"><br/><input type="submit" value="提交"></form></body></html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java web 上传文件