package com.yy.controller;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
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 org.apache.commons.io.FileUtils;
@WebServlet("/upload")
@MultipartConfig
public class FileServlet extends HttpServlet{
/**
* 文件上传
*/
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String fileType = "txt,xml,doc,jpg,png,jpeg,js";//允许上传的文件类型
int maxSize = 1024;//允许上传的文件最大大小(单位为byte)
response.setContentType("text/html; charset=UTF-8");
Part part = request.getPart("fileName");//请求参数
File file = new File("d:/"+part.getSubmittedFileName());//上传目的地
String fileName = file.getName();
//获取文件后缀名
String extName = fileName.substring(fileName.indexOf(".") + 1).toLowerCase().trim();
//判断文件大小是否超限
if ( part.getSize()/1024> maxSize){
System.out.println("文件超限");
request.setAttribute("message", "文件超限");
request.getRequestDispatcher("upload.jsp").forward(request, response);
file.delete();
}
//判断是否为允许上传的文件类型
else if ( !Arrays.<String> asList(fileType.split(",")).contains(extName)){
System.out.println("文件格式不正确");
request.setAttribute("message", "文件格式不正确");
request.getRequestDispatcher("upload.jsp").forward(request, response);
file.delete();
}else {
FileUtils.copyInputStreamToFile(part.getInputStream(), file);//传文件
System.out.println("上传成功");
request.setAttribute("message", "上传成功");
request.getRequestDispatcher("upload.jsp").forward(request, response);
}
}
}