【问题标题】:Initiate download pop up from node.js API /response/从 node.js API /response/ 启动下载弹出窗口
【发布时间】:2015-11-04 22:06:22
【问题描述】:

我有这个文件下载 API

    itemsRouter.route('/download/:id/:category/:type/:price/:name')
    .get(function(req,res){
        var currentDownloadIndex=0;
        if(req.session.username){
            // var uri = url.parse(req.url).id;
            var filename = path.join(process.cwd(),'/uploads/files/'+ req.params.category+'/'+req.params.id+'.'+req.params.type);
            path.exists(filename, function(exists) {
                if(!exists) {

                    //file doesn't exist
                    res.redirect('/');
                } else {
                    //if (fs.statSync(filename).isDirectory())
                    //    filename += '/Justin Bieber - What Do You Mean.mp4';
                 try {
                    var stat = fs.statSync(filename);
                    res.writeHeader(200,{"Content-Length":stat.size});
                    var fReadStream = fs.createReadStream(filename);
                    fReadStream.pipe(res);       
                    if(!(req.session.items[req.params.name]==req.params.name)){
                    req.session.price=parseFloat(req.session.price)+parseFloat(req.params.price);
                    req.session.items[req.params.name]=req.params.name;
                    currentDownloadIndex=currentDownloadIndex+1

                    }

                    // Todo : Generate a report after each success full download 
                    }
                     catch (error) {
                     if(currentDownloadIndex==1){
                    req.session.price=parseFloat(req.session.price)-parseFloat(req.params.price);
                    req.session.items[req.session.items.length]=(req.params.name);

                     }   

                    }

                }
            });
        }else {
            res.redirect('/');
        }

    });

这适用于视频文件,只是在浏览器上下载文件,但是当下载 pdf 文件时,它会在浏览器中打开并且对此不满意,谁能告诉我如何开始下载而不会造成任何混乱
谢谢

【问题讨论】:

  • 提供文件类型的内容类型标题。
  • 刚刚完成测试并再次将其加载到浏览器上,但这次出错了。

标签: angularjs node.js rest http


【解决方案1】:

将内容类型标头添加为“application/pdf”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    相关资源
    最近更新 更多