HtKnowledgeFileInfo是用来存储文件的
controller层
@PostMapping("/uploadFile")
@ResponseBody
public AjaxResult uploadFile(@RequestParam(value="file", required=false) MultipartFile file) throws IOException
{
String filePath = Global.getUploadPath();
String nameType=file.getOriginalFilename();
String Name=nameType.substring(0,nameType.lastIndexOf("."));
HtKnowledgeFileInfo fileInfo=new HtKnowledgeFileInfo();
String fileName = null;
try {
fileName = FileUploadUtils.upload(filePath, file, DEFAULT_ALLOWED_EXTENSION);
} catch (InvalidExtensionException e) {
e.printStackTrace();
}
fileInfo.setFilePath(fileName);
fileInfo.setFileName(Name);
return toAjax(fileInfoService.insertHtKnowledgeFileInfo(fileInfo));
}
HTML页面
<div class="col-sm-9">
<input id="upload" name="upload" type="file" multiple>
<button onclick="uploadFile()">上传</button>
</div>
javascript代码
function uploadFile(isno) {
var formData = new FormData();
formData.append('fileId',$("#fileId").val());
formData.append('fileName', $("#fileName").val());
formData.append('file', $('#upload')[0].files[0]);
if (typeof($('#upload')[0].files[0]) != 'undefined') {
$.ajax({
url: ctx + "ht/invoice/uploadFile",
type: 'post',
cache: false,
data: formData,
async: false,
processData: false,
contentType: false,
dataType: "json",
});
}
}
这个可以上传文件到数据库,但是我点击上传按钮会刷新,刷新后上传的文件就不在了,这样才能上传后,回到页面,上传的文件还在呢?
这是选择文件,还没有点击上传按钮之前
这是点击按钮后,选择的文件不显示,但是数据传到了数据库中的
dataType
去掉上传文件应该时multipart/form-data
而不是applition/json