package com.zhaoran.controller;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
public class UploadServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
Part part=req.getPart("myfile");
String filename=getFileName(part);
writeTo(filename,part);
req.setAttribute("msg", "文件上传成功");
req.getRequestDispatcher("common/success.jsp").forward(req, resp);
}
private void writeTo(String filename, Part part) throws IOException {
InputStream inputStream=part.getInputStream();
OutputStream outputStream=new FileOutputStream("e://"+filename);
byte[] buff=new byte[1024];
int len=-1;
while((len=inputStream.read(buff))!=-1){
outputStream.write(buff, 0, len);
}
outputStream.close();
inputStream.close();
}
private String getFileName(Part part) {
//String header=part.getHeader("Content-Disposition");
String header=part.getHeader("Content-Disposition");
System.out.println(header);
String filename=header.substring(header.indexOf("filename=\"")+10,header.lastIndexOf("\""));
System.out.println(filename);
return filename;
}
}
三、配置文件 web.xml