首页 > 编程语言 > 详细

JAVA servlet 上传文件(commons-fileupload, commons-io)

时间:2017-03-13 18:36:01      阅读:243      评论:0      收藏:0      [点我收藏+]

<1>获取二进制文件流并输出

     InputStream inputStream = request.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String s;
        while ((s = reader.readLine()) != null) {
            System.out.println(s);
        }

<2>借用服务器提供的架包(commons-fileupload, commons-io)

package servlet_demo;

import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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;

@WebServlet("/UpLoad")
public class UpLoad extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public UpLoad() {
        super();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /**
         * 获取WEB-INF的绝对路径并准备文件缓存目录和文件存放目录
         */
        String path = getServletContext().getRealPath("/WEB-INF/");
        String tempfilePath = path + "tempfile";
        String uploadPath = path + "upload/";
        try {
            /**
             * 获取文件上传列表
             */
            DiskFileItemFactory factory = new DiskFileItemFactory();
            //设置文件上传启用的缓存的值
            factory.setSizeThreshold(5 * 1024);
            //设置缓存目录
            factory.setRepository(new File(tempfilePath));
            ServletFileUpload upload = new ServletFileUpload(factory);
            //设置全部文件上传的最大值
            upload.setSizeMax(Integer.valueOf(100) * 1024 * 1024);
            //获取文件列表
            List<FileItem> items = upload.parseRequest(request);
            
            /**
             * 循环遍历获取表单字段和文件并存入指定地址
             */
            for (FileItem item : items) {
                if (item.isFormField()) {
                    //获取字段名
                    String name = item.getFieldName();
                    //获取字段值
                    String value = item.getString();
                    System.out.println(name + " : " + value);
                } else {
                    //获取文件名
                    String name = item.getName();
                    System.out.println(uploadPath);
                    item.write(new File(uploadPath + name));
                    item.delete();
                }
            }
        } catch (Exception e) {
            System.out.println("上传失败");
        }
    }
}

 

 

  

JAVA servlet 上传文件(commons-fileupload, commons-io)

原文:http://www.cnblogs.com/lovling/p/6544183.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!