查看: 2480|回复: 0

[Java语言] 追加java实现上传文件的方法

发表于 2018-1-18 08:00:02

上传多个文件的方法

  1. /**
  2. * 上传多个文件
  3. * 传入参数:上传路径(String),上传类型(String数组),文件的map(fileMap)
  4. * 返回参数:boolean
  5. */
  6. public static boolean uploadFile(String uploadDir,String[] types,HttpServletRequest request){
  7. String upPath=uploadDir+FileOperateUtil.UPLOADDIR;
  8. String fileName = "";
  9. String storeName="";
  10. MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
  11. Map<String, MultipartFile> fileMap = mRequest.getFileMap();
  12. Iterator<Map.Entry<String, MultipartFile>> it = fileMap.entrySet().iterator();
  13. while(it.hasNext()){
  14. Map.Entry<String, MultipartFile> entry = it.next();
  15. MultipartFile mFile = entry.getValue();
  16. fileName = mFile.getOriginalFilename();
  17. storeName = rename(fileName);
  18. /*遍历文件类型数组,类型匹配则上传文件返回true,否则上传失败返回false*/
  19. for(String type:types){
  20. if(getSuffix(storeName).equals(type)){
  21. try {
  22. FileUtils.copyInputStreamToFile(mFile.getInputStream(), new File(upPath,storeName));
  23. } catch (IOException e) {
  24. e.printStackTrace();
  25. }
  26. return true;
  27. }else{
  28. continue ;
  29. }
  30. }
  31. }
  32. return false;
  33. }
复制代码

上传单个文件的方法

  1. /**
  2. * 上传单个文件
  3. * 上传路径 upPath
  4. */
  5. public static String uploadOneFile(String upPath,String[] types,HttpServletRequest request){
  6. MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
  7. MultipartFile mFile = mRequest.getFile("file");
  8. String fileName = mFile.getOriginalFilename();
  9. String storeName = rename(fileName);
  10. /*遍历文件类型数组,类型匹配则上传文件返回true,否则上传失败返回false*/
  11. for(String type:types){
  12. if(getSuffix(storeName).equals(type)){
  13. try {
  14. FileUtils.copyInputStreamToFile(mFile.getInputStream(), new File(upPath,storeName));
  15. } catch (IOException e) {
  16. e.printStackTrace();
  17. }
  18. return storeName;
  19. }
  20. }
  21. return "fault";
  22. }
复制代码

其中上述的给文件重新命名的方法(rename)以及 根据转换后的文件名得到上传文件的后缀,即文件的类型的方法(getSuffix)代码如下

  1. /**
  2. * 将上传的文件进行重命名 采用当前日期+随机数
  3. */
  4. public static String rename(String name) {
  5. Long now = Long.parseLong(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
  6. Long random = (long) (Math.random() * now);
  7. String fileName = now + "" + random;
  8. if (name.indexOf(".") != -1) {
  9. fileName += name.substring(name.lastIndexOf("."));
  10. }
  11. return fileName;
  12. }
  13. /**
  14. * 根据转换后的文件名得到上传文件的后缀,即文件的类型
  15. */
  16. public static String getSuffix(String storename){
  17. String[] filename=storename.split("\\.");
  18. String suffix=filename[filename.length-1];
  19. return suffix;
  20. }
复制代码


回复

使用道具 举报