【发布时间】:2021-09-18 22:48:37
【问题描述】:
我想在数据库中上传图片,每次我进行 ajax 调用时,它都会进入成功和错误块。 这是我的html:
<div>
<form id="test-form" enctype="multipart/form-data">
<div>
<label>Photos: </label>
<input type="file" id="file"/>
</div>
<input type="button" value="Add" id="add-movie-tvShow-btn">
</form>
</div>
这是我的 ajax 调用
let insertButton = $("#add-movie-tvShow-btn");
insertButton.on('click', function () {
let formData = new FormData();
let file = $("#file")[0].files[0];
formData.append("file", file);
$.ajax({
url: "http://localhost:8080/upload",
method: "POST",
data: formData,
contentType: false,
processData: false,
success: function(){
alert("Enter success block");
},
error: function(){
alert("Enter error block")
}
});
});
这是处理ajax请求的方法:
@PostMapping(value = "/upload", consumes = "multipart/form-data")
public void uploadFile(@RequestParam("file") MultipartFile file, Movie movie) throws
IOException {
File convertFile = new File("C:\\Users\\myName\\Desktop\\" + file.getOriginalFilename());
convertFile.createNewFile();
FileOutputStream fout = new FileOutputStream(convertFile);
fout.write(file.getBytes());
movie.setImage(file.getBytes());
movieRepo.save(movie);
fout.close();
}
它在数据库中创建数据,但我不明白为什么输入错误块?我做错了什么?
【问题讨论】:
-
请看看这是否对你有帮助stackoverflow.com/questions/14475853/…
-
这应该是不可能的。在这种情况下,你的
sucess函数根本不应该被调用,因为“成功”是两个 C 的。您的浏览器控制台是否显示任何错误? -
@Ivar 是的,这很奇怪,它没有显示任何错误,但即使我放了两个 C,它的行为也是一样的。