簡體   English   中英

使用Sails.js 0.12下載多個文件

[英]Download multiple files with Sails.js 0.12

我嘗試從Sails.js 0.12應用程序中的數據文件夾(資產文件夾的OUT)下載上傳的文件。

我最終通過以下步驟安裝了Skipper-disk npm:

var SkipperDisk = require('skipper-disk');
var fileAdapter = SkipperDisk(/* optional opts */);

res.attachment('./data/'+req.param('product_id')+ '/' + req.param('file'));
fileAdapter.read('./data/'+req.param('product_id')+ '/' + req.param('file'))
.on('error', function (err){
    return res.serverError(err);
})
.pipe(res);

我對此有些失望,因為我想找到一種無需安裝更多依賴項(跳過磁盤)的方法。 我嘗試了諸如: sailsjs發送文件上飛與res.attachment() , 我如何驗證用戶訪問在sails.js資產的文件夾使用Dropzone.js上傳與Sails.js 0.10和船長多個文件Sails.js下載File To Client ,還有更多,但是沒有其他作用。

除了跨接磁盤之外,還有其他方法可以使上傳工作正常嗎?

另外,我需要通過上一個控制器操作下載多個文件,但是從前端發出的請求僅打開了第一個選定的文件。

這是代碼:

files.forEach(function(file) {
    window.open('/product/' + id + '/download/' + file, '_blank');
});

有沒有辦法從后端獲取多個文件?

對於我的第一個問題,我不確定這是否是最好的方法,但是在沒有Skipper-disk的情況下也可以正常工作(當我需要安裝新的npm時,運行該應用程序的服務器很痛苦。我嘗試不這樣做!):

const Path = require('path');
const fs = require('fs');

fs.createReadStream(Path.resolve('./data/'+req.param('product_id')+ '/' + req.param('file')))
.on('error', function (err) {
    return res.serverError(err);
})
.pipe(res);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM