我有一个 Nestjs 服务器,并且已经上传了图像,但是当我尝试访问这些图像时,它们是一堆无法解释为图像的东西。(我还尝试将它们转换为 blob,然后将其转换为 objectURL,然后将其设置为 img 标签的 src 但这也不起作用)。上传代码:
@Post('upload')
@UseInterceptors(FileInterceptor('file',{
storage: diskStorage({
destination: './uploads',
filename: editFileName,
}),
fileFilter: imageFileFilter,
}))
uploadFile(@UploadedFile() file){
console.log(file);
file.filename = file.originalname;
const response = {
originalname: file.originalname,
filename: file.filename,
}
return response;
}
上面的上传代码完美地将图像保存为我的上传文件夹中的index-53a2.jpg。现在尝试使用 get req 获取图像:
@Get()
display(@Res() res){
res.sendFile('index-53a2.jpg',{ root: './uploads' })
}
对此的记录响应它给出了一些不可读(可能是编码的)内容的字符串。
我用于测试的代码:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function () {
$('#abc').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: 'http:/localhost:3000/student/upload',
method:'POST',
data: new FormData(this),
contentType: false,
cache:false,
processData:false,
success: function (data) {
console.log(data);
// location.reload();
}
});
});
});
function fun(){
$.ajax({
url: 'http://localhost:3000/student',
success: function(data){
console.log('s',data);
let blob = new Blob([data]);
var objectURL = URL.createObjectURL(blob);
document.getElementById('img').src = objectURL;
},
error: function(data){
console.log('e',data);
}
})
}
</script>
</head>
<body>
<img alt="Image" id="img">
<form enctype= "multipart/form-data" id="abc">
<input type="file" name="file" required accept="image/*"><br>
<input name="submit" type="submit" value="Submit">
</form>
<button onclick="fun()">Button</button>
</body>
</html>
另外这个html代码只是为了测试,我的主要目的是使用这个服务器,这样我就可以从角度获取学生图像和数据(包含姓名、电话等基本详细信息)并将其保存在mongoDB上。另外,我不知道如何将图像从 Angular 发送到 Nestjs 以及如何保存它(以及将其保存在 MongoDB 或 Nestjs 服务器上的位置以及如何保存)
任何帮助将不胜感激!!!
提前致谢。