package org.wall.servlet; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.sql.SQLException; import java.util.List; import javax.servlet.ServletException; 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.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.wall.jdbc.SQLiteJDBC; import org.wall.util.UUIDUtils; public class FileUploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); // 1. 获取磁盘文件的条目的工厂 DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); // 2.获取上传文件要存放的的路径文件夹 String fileRepoDir = request.getServletContext().getRealPath("/pic"); System.out.println(fileRepoDir); // 设置factory的一些属性 diskFileItemFactory.setRepository(new File(fileRepoDir)); // 设置缓存的大小,当超过缓存大小的时候,就会直接放到暂存空间 diskFileItemFactory.setSizeThreshold(1024 * 1024); // 文件上传处理器 ServletFileUpload fileUpload = new ServletFileUpload(diskFileItemFactory); try { // 获取所有的上传的文件,,可以实现多文件上传 List<FileItem> fileItems = fileUpload.parseRequest(request); for (FileItem fileItem : fileItems) { if (!fileItem.isFormField()) { // 1.获取文件路径名 String fileName = fileItem.getName(); // 2.写文件 fileItem.write(new File(fileRepoDir, fileName)); } } this.savePic(fileItems); } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } // 不能试用与多图上传 public void savePic(List<FileItem> fileItems) throws SQLException, UnsupportedEncodingException { String val = ""; String key = ""; String fileName = ""; for (FileItem f : fileItems) { if (f.isFormField()) { String value = new String(f.getString().getBytes("ISO-8859-1"), "UTF-8"); val += "'" + value + "',"; key += f.getFieldName() + ","; } else { fileName = f.getName(); } } String id = UUIDUtils.id(); String sql = "insert into wall(id," + key + "name)values('" + id + "'," + val + "'" + fileName + "')"; System.out.println(sql); SQLiteJDBC.saveOrUpdate(sql); } }
最近下载更多
sunlea LV20
2023年4月21日
syh12355 LV5
2019年12月10日
sinanjuzzzz LV2
2019年1月20日
aoxuezhishen LV1
2018年9月21日
一道念 LV10
2018年9月17日
最代码酒酒 LV20
2018年8月2日
ledougo LV11
2018年6月19日
lscoco LV1
2018年5月22日
yezizhu LV1
2018年5月16日
wangzp LV5
2018年3月5日
最近浏览更多
locklock LV2
5月22日
好的好的 LV8
3月11日
sunlea LV20
2023年4月20日
知南TGA LV2
2023年3月11日
张好好 LV1
2022年10月26日
1833174181 LV1
2022年8月23日
chenhongjie LV5
2022年7月15日
小新Coding LV9
2022年3月4日
天险无涯 LV15
2021年3月25日
stefaineyu LV8
2021年3月8日