ExpressJS res.download在桌面上可用,在Iphone中不可用

时间:2019-08-23 11:15:41

标签: javascript html node.js iphone express

你好,我有从后端发送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>

我做错了吗?我也想在手机上下载:)

0 个答案:

没有答案