您的位置:首页 > 编程语言 > Java开发

JAVA文件上传和下载

2017-12-06 14:06 316 查看
文件上传java后台的处理代码:

/**
* 上传文件
*
* @param session
* @param file
* @return
*
*/
@RequestMapping(value = "sys/file/fileUpload", produces = "text/html;charset=UTF-8")
@ResponseBody
public String fileUpload(HttpSession session, @RequestParam(value = "file", required = true) MultipartFile file) {
String path = Property.getProperty("fileUpload.path");//文件存储的位置

File dir = new File(path);
if (!dir.exists()) {
dir.mkdir();
}

String filename = "";
if (!file.isEmpty()) {
// log.debug(session.getServletContext().getRealPath(path));
try {
// 用UUID而不是时间戳
filename = UUID.randomUUID().toString() + "____" + file.getOriginalFilename();

// 文件保存路径
String filePath = path + "/" + filename;
// 转存文件
file.transferTo(new File(filePath));

} catch (Exception e) {
log.error(CustomStringUtils.getExceptionInfo(e));
return JSONUtil.toJsonString(new JsonResult(-1, "上传发生错误!", null));
}
}
log.info("上传了文件" + filename);
return JSONUtil.toJsonString(new JsonResult(1, "", filename));
}

java后台下载文件:
/**
* 下载文件
*
* @param session
* @param filename
* @return
* @throws IOException
*
*/
@RequestMapping(value = "sys/file/fileDownload")
public ResponseEntity<byte[]> download(HttpSession session, @RequestParam("filePath") String filename)
throws IOException {
String path = Property.getProperty("fileUpload.path");//文件存储的位置
String filepath = path + "/" + filename;

File file = new File(filepath);
if (!file.exists()) {
// return JSONUtil.toJsonString(new JsonResult(-1, "文件未找到!", null));
log.error("文件没有找到! " + filepath);
throw new RuntimeException("文件没有找到!");
}

String dfileName = filename.split("____")[1];
dfileName = new String(dfileName.getBytes("utf-8"), "ISO_8859_1");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", dfileName);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK);
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: