在客户端,这是一个React应用。我设置了一个可以向其请求文件的端点。但是,从pdfs到png到excel文件的每个文件在尝试从服务器下载时似乎都已损坏,无法成功打开这些文件中的任何一个。想知道是否有人对此有任何见识。找不到任何可行的方法。
有关后端和前端的代码,请参见下文。
后端node.js
val directory = "Internal storage/Android/data/com.example.mypackage/files/TrainingVideos/trainingvideos.zip"
var directoryToDelete = File(directory)
var exists = directoryToDelete.exists()
if ( exists ) {
directoryToDelete.deleteRecursively()
}
前端-反应
ChangeLogAttachment_read(req, res, id, file_path, file_type)
.then(resp => {
res.download(file_path, file_name, (error)=>{
if(error) {
console.log("Error", error);
}
});
// Tried these
// res.contentType(file_type);
// res.send(fs.readFileSync(file_path));
// res.send(resp)
})
.catch(err => {
err.location = 'Error in NS_Controller.changeLogAttachments read.';
log.error(err)
});
答案 0 :(得分:0)
您应将axios标头对象中的响应类型更改为“ arraybuffer”
headers: {
Authorization: 'Bearer ' + token,
responseType:'arraybuffer'
},
来源:https://github.com/axios/axios/issues/448#issue-176993853
答案 1 :(得分:0)
实际上能够解决它,因为响应类型blob必须位于标头之外,如下所示:
{ key2:"key2"}