上传附件

main
tamguo 7 years ago
parent 966868d908
commit f8c6365030

@ -123,4 +123,43 @@ public class DocumentController {
return Result.failResult("上传失败"); return Result.failResult("上传失败");
} }
} }
/**
*
*/
@SuppressWarnings("unchecked")
@RequestMapping(value = "uploadFile" , method = RequestMethod.POST)
@ResponseBody
public Result uploadFile(@RequestParam("editormd-file-file") MultipartFile file, String bookId , HttpServletRequest request) {
try {
String fileMd5 = FileMd5Utils.getMD5((FileInputStream)file.getInputStream());
FileEntity sysFile = iFileEntityService.selectOne(Condition.create().eq("file_md5", fileMd5));
if(sysFile != null) {
sysFile.setFilePath(domainName + "files/" + sysFile.getFilePath());
return Result.successResult(sysFile);
}
String filePath = fileStoragePath + "book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId;
File dest = new File(filePath);
if(!dest.exists()) {
dest.mkdirs();
}
// save 文件
FileUtils.writeByteArrayToFile(new File(filePath + "/" + file.getOriginalFilename()) , file.getBytes());
FileEntity fileEntity = new FileEntity();
fileEntity.setFileContentType(file.getContentType());
fileEntity.setFileExtension(file.getOriginalFilename());
fileEntity.setFileMd5(FileMd5Utils.getMD5((FileInputStream)file.getInputStream()));
fileEntity.setFileSize(file.getSize());
fileEntity.setFilePath("book/" + DateUtil.fomatDate(new Date(), "yyyyMM") + "/" + bookId + "/" + file.getOriginalFilename());
iFileEntityService.insert(fileEntity);
fileEntity.setFilePath(domainName + "files/" + fileEntity.getFilePath());
return Result.successResult(fileEntity);
} catch (IOException e) {
e.printStackTrace();
return Result.failResult("上传失败");
}
}
} }

@ -215,13 +215,13 @@
</template> </template>
<template v-else-if="item.state == 'error'"> <template v-else-if="item.state == 'error'">
<span class="error-message">${item.message}</span> <span class="error-message">${item.message}</span>
<button type="button" class="btn btn-sm close" @click="removeAttach(item.attachment_id)"> <button type="button" class="btn btn-sm close" @click="removeAttach(item.fileId)">
<i class="fa fa-remove" aria-hidden="true"></i> <i class="fa fa-remove" aria-hidden="true"></i>
</button> </button>
</template> </template>
<template v-else> <template v-else>
<a :href="item.http_path" target="_blank" :title="item.file_name">${item.file_name}</a> <a :href="item.filePath" target="_blank" :title="item.file_name">${item.fileExtension}</a>
<span class="text">(${ formatBytes(item.file_size) })</span> <span class="text">(${ formatBytes(item.fileSize) })</span>
<span class="error-message">${item.message}</span> <span class="error-message">${item.message}</span>
<button type="button" class="btn btn-sm close" @click="removeAttach(item.attachment_id)"> <button type="button" class="btn btn-sm close" @click="removeAttach(item.attachment_id)">
<i class="fa fa-remove" aria-hidden="true"></i> <i class="fa fa-remove" aria-hidden="true"></i>
@ -751,7 +751,7 @@ docker run -p 8181:8181 -e MYSQL_PORT_3306_TCP_ADDR=127.0.0.1 -e MYSQL_PORT_3306
var item = window.vueApp.lists[index]; var item = window.vueApp.lists[index];
if(item.attachment_id === file.id){ if(item.attachment_id === file.id){
if(res.code === 0) { if(res.code === 0) {
window.vueApp.lists.splice(index, 1, res.attach ? res.attach : res.data); window.vueApp.lists.splice(index, 1, res.result ? res.result : res.result);
}else{ }else{
item.message = res.message; item.message = res.message;
item.state = "error"; item.state = "error";

Loading…
Cancel
Save