Servlet中文件上传

利用getReader()和getInputstream()上传

package control;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

@WebServlet("/fileupload")
public class Fileupload extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      //request.setCharacterEncoding("utf-8");
      //方法一
      /*  ServletInputStream sis=request.getInputStream();
        byte[] tmp=new byte[8192];
        File file=new File("E:\dc.zip");
        FileOutputStream fos=new FileOutputStream(file);
        int i=sis.read(tmp);
        while (i!=-1){
            fos.write(tmp,0,i);
            i=sis.read(tmp);
        }
        fos.close();*/
      //方法二
        BufferedReader br=request.getReader();
        /*File file=new File("E:\da.doc");
        BufferedWriter bw=new BufferedWriter(new FileWriter(file));*/
        String s=br.readLine();
        while (s!=null){
            System.out.println(s);
            s=br.readLine();
        }
        br.close();
        PrintWriter out=response.getWriter();
        out.write("success");
        out.close();
    }

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

    }
}

Servlet3.0中Part,getPart()文件上传

package control;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
@MultipartConfig(location = "e:\",maxFileSize = 1024*1024*2)//保存文件路径
@WebServlet("/ServletFile")
public class ServletFile extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        Part part=request.getPart("file");
        String head=part.getHeader("Content-Disposition");//获取文件头Content-Disposition
        System.out.println(head);
        //获取文件名
        int start=head.lastIndexOf("="");
        String filename=head.substring(start+2);
        filename=filename.substring(0,filename.length()-1);
        System.out.println(filename);
        part.write(filename);
    }

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

    }
}

 多文件上传getParts()就是把单文件用foreach()处理

//多文档上传
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        for (Part part:request.getParts()){
            String head=part.getHeader("Content-Disposition");//获取文件头Content-Disposition
            System.out.println(head);
            //获取文件名
            int start=head.lastIndexOf("="");
            String filename=head.substring(start+2);
            filename=filename.substring(0,filename.length()-1);
            System.out.println(filename);
            part.write(filename);