Spring上传文件
来源:互联网 发布:蕉下伞是一场骗局知乎 编辑:程序博客网 时间:2024/06/07 04:33
在使用Spring上传文件时,当文件过多时,会产生文件名重复的问题,所以就提出了用时间来划分文件夹来存放文件的方式,这种方式能减少产生重复文件的概率,但也有不可避免的在一个小时内上传同一个文件两次的概率,这样也会产生覆盖
public class UpLoadFile extends HttpServlet{ private static final long serialVersionUID = 1L; private static final Logger LOG = Logger.getLogger(UpLoadFile.class.getName()); private int maxPostSize = 1048576000; public void doGet(HttpServletRequest request, HttpServletResponse resopnse) throws IOException { doPost(request, resopnse); } public void doPost(HttpServletRequest request, HttpServletResponse resopnse) throws IOException { try { upLoad(request, resopnse); } catch (Exception e) { e.printStackTrace(); } } private void upLoad(HttpServletRequest request, HttpServletResponse resopnse) throws Exception { String uploadPath = "上传文件存放的位置"; LOG.debug("uploadPath:" + uploadPath); if (!new File(uploadPath).exists()) { new File(uploadPath).mkdirs(); } resopnse.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(20480); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(this.maxPostSize); try { List fileItems = upload.parseRequest(request); Iterator iter = fileItems.iterator(); String fileNameSave = request.getParameter("filename"); Date date=new Date(); DateFormat format=new SimpleDateFormat("yyyyMMddHH"); String time=format.format(date); String fileSavePath = uploadPath+time+"/"; File filePath =new File(fileSavePath); //如果文件夹不存在则创建 if (!filePath .exists() && !filePath .isDirectory()) { System.out.println("//不存在"); filePath .mkdir(); } else { System.out.println("//目录存在"); } String exFileName = ""; while (iter.hasNext()) { FileItem item = (FileItem)iter.next(); String itemName = item.getName(); if (!item.isFormField()) { if (itemName.indexOf(".") > 0) { exFileName = itemName.substring(itemName .indexOf(".")); } fileSavePath = fileSavePath + itemName.substring(0, itemName.indexOf(".")); try { File skFile = new File(fileSavePath + exFileName); if (skFile.exists()) { skFile.delete(); item.write(new File(fileSavePath + exFileName)); } else { item.write(new File(fileSavePath + exFileName)); } } catch (Exception e) { e.printStackTrace(); } } } resopnse.getWriter().print("newFileName:" + fileSavePath + exFileName); LOG.debug("upload newFileName:" + fileSavePath + exFileName); } catch (FileUploadException e) { e.printStackTrace(); } }有什么好的办法避免这样的概率发生吗,上传文件和保存到数据库的文件名和url是前端传过来的,如果采用uuid的方式,怎么在保存到数据库中获取到这个uuid呢?
0 0
- spring实现文件上传
- Spring 文件上传
- spring上传文件
- Spring MultipartResolver文件上传
- spring mvc 文件上传
- Spring 文件上传
- spring 多文件上传
- Spring文件上传
- Spring CommonsMultipartResolver 上传文件
- Spring 文件上传
- spring MVC 文件上传
- spring 多文件上传
- spring 文件上传
- Spring MVC文件上传
- Spring 文件上传
- Spring CommonsMultipartResolver 上传文件
- Spring实现文件上传
- Spring 文件上传
- 关于如何美化WordPress默认的首页主题
- CIDR地址分类
- SSH整合,事务管理
- LuoguP1010幂次方
- 【Hibernate】——一对一映射
- Spring上传文件
- poj 1979(DFS)
- 如何阅读一本书
- 如何优化网站的访问速度
- codeforces 776c Molly's Chemicals 【思维】
- bzoj2212(线段树合并第一道)
- 算法提高 队列操作
- JDBC--调用存储过程
- Java Web(三) 会话机制,Cookie和Session详解