xml
#{file,jdbcType=VARCHAR}
实体类
byte[] file;
文件上传
@PostMapping(value = "editFile", produces = "text/html;charset=UTF-8")
public String editMyFile(@RequestParam Map<String, Object> params, HttpServletRequest request) {
MyFile myFile = JSON.parseObject(JSON.toJSONString(params), MyFile.class);
MultipartFile file = ((MultipartHttpServletRequest) request).getFile("file");
if (file != null && !file.isEmpty()) {
FileUploadUtil fileUploadUtil = FileUploadUtil.uploadAndDelete(file, FileUploadUtil.filePath);
String base64Data = ArithmeticAPI.encodeImageBase64(fileUploadUtil.getAbsolutePosition(), fileUploadUtil.getFileName());
//base64
myFile.setFile(base64Data.getBytes());
//string名
myFile.setFileName(ArithmeticAPI.base64Encode(fileUploadUtil.getFileName()));
//上传完成后删除
FileUploadUtil.del(fileUploadUtil.getFile());
} else {
myFile.setFile(null);
myFile.setFileName(null);
}
Map map = new HashMap();
map.put("status", MyfileService.updateMyFile(myFile));
return JSON.toJSONString(map);
}
文件下载
<a class="layui-btn" href="${pageContext.request.contextPath}/downloadWorkExperiencePic?workEId=${WorkExperience.workEId}">下载</a>
@GetMapping("downloadWorkExperiencePic")
public void downloadWorkExperiencePic(WorkExperience workExperience, HttpServletResponse response) {
LinkedHashMap linkedHashMap = workExperienceService.findWorkExperiencesEntity(workExperience).get(0);
Blob blob = (Blob) linkedHashMap.get("dimissioCertificate");
if (blob != null) {
String blobString = null;//blob 转 String
try {
blobString = new String(blob.getBytes(1, (int) blob.length()), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
ArithmeticAPI.decodeImageBase64(FileUploadUtil.filePath, blobString, (String) linkedHashMap.get("dcfFileName"));
File file = new File(FileUploadUtil.filePath+"/"+(String) linkedHashMap.get("dcfFileName"));
try {
//得到该文件
if(!file.exists()){
System.out.println("Have no such file!");
}else{
FileInputStream fileInputStream = new FileInputStream(file);
//设置Http响应头告诉浏览器下载这个附件,下载的文件名也是在这里设置的
response.setHeader("Content-Disposition", "attachment;Filename=" + URLEncoder.encode((String) linkedHashMap.get("dcfFileName"), "UTF-8"));
OutputStream outputStream = response.getOutputStream();
byte[] bytes = new byte[2048];
int len = 0;
while ((len = fileInputStream.read(bytes))>0){
outputStream.write(bytes,0,len);
}
fileInputStream.close();
outputStream.close();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
FileUploadUtil.forceDelete(file);
}
}
}