你好,我有从后端发送mp3文件的逻辑。
当我单击桌面上的下载时,它可以正常工作并且正在下载文件。 当我在移动设备上执行相同操作时,File.findOne({alias}返回null并发送404。iphone正在使用标签和错误的URL打开新页面,但没有任何效果。 在Android上可以使用。
File.findOne({ alias }, function (err, doc) {
console.log(doc);
if (err || doc === null) {
console.log(err);
console.log('findOne Fail');
return res.sendStatus(404);
}
const filePath = path.join(__dirname, `../public/uploads/${doc.video_id}${getNameByBitrate(doc.bitrate)}.mp3`);
const fileName = `${doc.video_id}${getNameByBitrate(doc.bitrate)}.mp3`;
res.download(filePath, fileName, (err) => {
if (err) {
console.log("RES.DOWNLOAD ERR", err);
throw err;
}
console.log("RES.DOWNLOADED PATH", filePath);
console.log("RES.DOWNLOADED NAME", fileName);
return FileController.findByVideoIdAndChange(doc.video_id, doc.bitrate);
});
});
我的链接看起来像这样
<a role="button" title="Download" download="Dx-WaZkp58Q.mp3" href="/upload/download/W8kkp8Q-Qx-a8Zk">DOWNLOAD</a>
我做错了吗?我也想在手机上下载:)