|
@@ -0,0 +1,69 @@
|
|
|
+package com.sf.fileupload;
|
|
|
+
|
|
|
+import org.apache.commons.fileupload.FileItem;
|
|
|
+import org.apache.commons.fileupload.FileUploadException;
|
|
|
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
|
|
+import org.apache.commons.fileupload.servlet.ServletFileUpload;
|
|
|
+
|
|
|
+import javax.servlet.*;
|
|
|
+import javax.servlet.http.*;
|
|
|
+import javax.servlet.annotation.*;
|
|
|
+import java.io.File;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 这是文件上传的servlet
|
|
|
+ */
|
|
|
+@WebServlet(name = "FileUpLoadServlet", value = "/FileUpLoadServlet")
|
|
|
+public class FileUpLoadServlet extends HttpServlet {
|
|
|
+ @Override
|
|
|
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
|
+ doPost(request,response);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
|
+ System.out.println("请求依赖来到servlet这里...");
|
|
|
+ DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
|
|
|
+ ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
|
|
|
+// 对当前上传的文件单个进行限制
|
|
|
+ servletFileUpload.setFileSizeMax(1024*1024*10);
|
|
|
+// 对文件上传的总大小进行限制
|
|
|
+ servletFileUpload.setSizeMax(1024*1024*100);
|
|
|
+ try {
|
|
|
+ //前端传过来的属性控件
|
|
|
+ List<FileItem> fileItems = servletFileUpload.parseRequest(request);
|
|
|
+ for (FileItem fileItem : fileItems) {
|
|
|
+// 获取表单的名称
|
|
|
+ String fieldName = fileItem.getFieldName();
|
|
|
+ // 获取表单的value值,以utf-8的形式进行获取,防止中文乱码
|
|
|
+ String value = fileItem.getString("UTF-8");
|
|
|
+ System.out.println("fieldName"+value);
|
|
|
+// 获取文件的名称
|
|
|
+ String name = fileItem.getName();
|
|
|
+ //防止文件名称重复,可以i使用时间戳
|
|
|
+ String id = new Date().getTime()+"";
|
|
|
+// 重新生成文件名称
|
|
|
+ name = id+name;
|
|
|
+// 上传到指定的位置
|
|
|
+ String realPath = getServletContext().getRealPath("/upload");
|
|
|
+ System.out.println("上传图片的地址"+realPath);
|
|
|
+ // 获取路径
|
|
|
+ File file = new File(realPath);
|
|
|
+// 判断当前路径是否存在
|
|
|
+ if(!file.exists()){
|
|
|
+ file.mkdirs();
|
|
|
+ };
|
|
|
+// 将文件写到服务器当中
|
|
|
+ fileItem.write(new File(realPath+"/"+name));
|
|
|
+// 清空缓存
|
|
|
+ fileItem.delete();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|