Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过JavaScript或Node.js强制将PDF从文件夹下载到浏览器/用户?_Javascript_Node.js_Pdf_Axios - Fatal编程技术网

如何通过JavaScript或Node.js强制将PDF从文件夹下载到浏览器/用户?

如何通过JavaScript或Node.js强制将PDF从文件夹下载到浏览器/用户?,javascript,node.js,pdf,axios,Javascript,Node.js,Pdf,Axios,HTML(ejs模板)代码: <input class="download" data-orderId="<%= orders[i].stubhubOrderId %>" type="button" value="Download"> JavaScript/jQuery代码: $(document).on('click', '.download', function (e) { showSpinner(); const orderId = $(thi

HTML(ejs模板)代码:

<input class="download" data-orderId="<%= orders[i].stubhubOrderId %>" type="button" value="Download">

JavaScript/jQuery代码:

$(document).on('click', '.download', function (e) {
    showSpinner();
    const orderId = $(this).attr('data-orderId');
    axios.post('/get-order-ticket-by-orderid', {
        orderId: orderId
    })
    .then(function (response) {
            hideSpinner();
            // PDF Download code
            const fileURL = '/uploads/539038653.pdf'
            const fileName = '539038653.pdf'
            // for non-IE
            if (!window.ActiveXObject) {
                var save = document.createElement('a');
                save.href = fileURL;
                save.target = '_blank';
                save.download = fileName || 'unknown';

                var evt = new MouseEvent('click', {
                    'view': window,
                    'bubbles': true,
                    'cancelable': false
                });
                save.dispatchEvent(evt);

                (window.URL || window.webkitURL).revokeObjectURL(save.href);
            }

            // for IE < 11
            else if ( !! window.ActiveXObject && document.execCommand)     {
                var _window = window.open(fileURL, '_blank');
                _window.document.close();
                _window.document.execCommand('SaveAs', true, fileName || fileURL)
                _window.close();
            }   
    })
    .catch(function (error) {
        hideSpinner();
    });
});    
$(文档).on('click','download',函数(e){
showSpinner();
const orderId=$(this.attr('data-orderId');
axios.post(“/get order ticket by order id”{
orderId:orderId
})
.然后(功能(响应){
hideSpinner();
//PDF下载代码
const fileURL='/uploads/539038653.pdf'
常量文件名='539038653.pdf'
//对于非IE
如果(!window.ActiveXObject){
var save=document.createElement('a');
save.href=fileURL;
save.target=''u blank';
save.download=fileName | |“未知”;
var evt=新建MouseEvent('单击'{
“视图”:窗口,
“泡沫”:没错,
“可取消”:false
});
保存调度事件(evt);
(window.URL | | window.webkitURL).revokeObjectURL(save.href);
}
//对于IE<11
else if(!!window.ActiveXObject&&document.execCommand){
var _window=window.open(fileURL,_blank');
_window.document.close();
_window.document.execCommand('SaveAs',true,fileName | | fileURL)
_window.close();
}   
})
.catch(函数(错误){
hideSpinner();
});
});    
当我在“新建”选项卡中手动打开PDF()时,它工作正常,但由于上面的代码,我的文件(PDF)已损坏。打开下载的PDF文件时,我收到这条消息“PDF文件已损坏”


有人能帮我通过JavaScript从文件夹下载PDF文件吗?

我通过在节点路径“/get order ticket by orderid”中添加以下代码解决了这个问题(请参阅问题中的代码以获取“/get order ticket by orderid”)


你没有使用
createObjectURL
,所以你不应该使用
revokeObjectURL
。@Phil没有理解你。你能举个例子吗?当然。。。删除这一行~
(window.URL | | window.webkitURL)好的,让我试试。@Phil试过了,同样的问题。
let wstream = data.data.pipe(fs.createWriteStream('uploads/test.pdf'));
 wstream.on('finish', function () {
    return res.status(data.status).json(data);
 });