后台通用上传代码

控制层

@RequestMapping(value = "upload",method=RequestMethod.POST)
public void upload(MultipartHttpServletRequest multiRequest,HttpServletResponse response, HttpServletRequest request,  MultipartFile myfile) {
System.out.println(multiRequest);
if(multiRequest!=null){
Iterator<String> filesNames = multiRequest.getFileNames(); // 获得所有的文件名
Set<String> resultFilePaths = new HashSet<String>();
while (filesNames.hasNext()) { // 迭代,对单个文件进行操作
String fileName = filesNames.next();
MultipartFile file = multiRequest.getFile(fileName);
Files files=fileService.saveFile(file, request);
String originalFilename = file.getOriginalFilename();
if (!file.isEmpty()) {
System.out.println("");
//     String resultFilePath = DateUtils.getCurrentDateStr() +File.separator + GeneratorKey.genaraId() + originalFilename.substring(originalFilename.lastIndexOf('.'), originalFilename.length());
//     FileUtils.copyInputStreamToFile(file.getInputStream(), new File(filePath, resultFilePath));
//     resultFilePaths.add(type.getCode()+File.separator+resultFilePath);
}
JsonUtils.printCommonObject(response, "{\"code\":\"success\"}");

 }else JsonUtils.printCommonObject(response, "{\"code\":\"error\"}");
}

服务层

/**
* 保持一个文件信息,并返回文件对象

* @param myfile
*            上传的文件名称
* @param request
*            请求对象
* @return 返回保持后的文件信息(包含文件主键)
*/
public Files saveFile(MultipartFile myfile, HttpServletRequest request) {
Files file = copyFile(myfile, null, request);
if (file != null)
this.baseDao.save(file);
return file;
}
private Files copyFile(MultipartFile myfile, Files files,
HttpServletRequest request) {
Files file = files;
Users user=(Users) request.getSession().getAttribute("currentUser");
if (myfile!=null&&myfile.isEmpty()) {
System.out.println("文件未上传");
} else {
String realName = myfile.getOriginalFilename();
String fileName = null;
if(user!=null)
fileName = System.currentTimeMillis()+""+user.getUserId()
+ realName.substring(realName.lastIndexOf("."));
else fileName = System.currentTimeMillis()
+ realName.substring(realName.lastIndexOf("."));
String realUrl=getRealPath(realName);
String realPath = request.getSession().getServletContext().getRealPath("")+"/"+realUrl;
try {
FileUtils.copyInputStreamToFile(myfile.getInputStream(),
new File(realPath, fileName));
} catch (Exception e) {
e.printStackTrace();
}
if (file == null)
file = new Files();
file.setFileName(myfile.getOriginalFilename());
file.setFileSize(myfile.getSize());
BufferedImage image=null;
try {
image = ImageIO.read(myfile.getInputStream());
} catch (IOException e) {
System.out.println(e.getMessage());
}
if (image != null)file.setIsPic(true);
else file.setIsPic(false);
file.setFileType(myfile.getContentType());
file.setCreateTime(DateUtils.getTimestampByMillis());
file.setUrl(realUrl + "/" + fileName);
file.setStatus(true);
if(user!=null)
file.setUsers(user.getUserId());
}
return file;
}
private String getRealPath(String fileName){
fileName = fileName.substring(fileName.lastIndexOf(".")).trim()
.toLowerCase();
if (".gif".equals(fileName) || ".jpeg".equals(fileName)
|| ".jpg".equals(fileName) || ".bmp".equals(fileName)
|| ".png".equals(fileName))
return "resource\\file\\img";
else
return "resource\\file\\fil";
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值