2016-03-09 35 views
0

我想上傳多個圖像文件到我的服務器。在客戶端,我使用dropzone.js。我的後端服務器是sails.js,我想使用強大的更新客戶端的進度條(我對sails.js和node.js相當新)上傳文件sails.js dropzone.js和強大:請求中止

這是我的控制器(以打字稿書面)

export var upload = function (req: express.Request, res: express.Response, next) { 
 
    
 
    var form = new formidable.IncomingForm(); 
 

 
    form.parse(req, function (err, fields, files) {    
 
    }); 
 

 
    form.on('progress', function (bytesReceived, bytesExpected) { 
 
     // calculating perscent and logging progress message 
 
    }); 
 

 
    form.on('error', function (err) { 
 
     console.error(err); // --> here I get "Request aborted" 
 
    }); 
 

 
    form.on('end', function (fields, files) { 
 
     // here I save files to disk with fs-extra and I 
 
     // send back to client appropriate status 
 
    });  
 
}

我不斷收到錯誤處理程序 '中止請求'。我已經在stackoverflow和google上進行了一些搜索,但沒有找到明確的答案。這個問題似乎與多部分表單數據以及爲了分析正文而使用的適當的表達中間件有關。如何設置我的sails.js應用程序以便在客戶端上使用dropzone.js上傳文件並在服務器上啓動+強大的窗口?

任何幫助將不勝感激

+0

我不是打字稿不夠熟悉,但通常在'sails.js',你只是通過'FN(REQ,水庫,旁邊)'在控制器中。我不確定'res:express.Response'是什麼意思 – Bwaxxlo

+0

別擔心。它們在構建過程中被打字稿編譯器刪除,以便應用程序中使用的實際輸出.js文件與您所期望的一樣:fn(req,res,next){...} – TheSoul

+0

嗨,您是否發現與SailsJs和強大的工作方式。我也收到'請求中止'的消息。我確實意識到上傳待處理狀態文件的請求,並且'form.progress(...)'也沒有初始化。我認爲它可以是'var form = new formidable.IncomingForm();'在不同的時間執行,它的事件與發送的文件不匹配。 – Leo

回答

0

隨着懸浮窗和Sails.js,你必須:

添加文件名的definination在懸浮窗配置: Dropzone.options.myDropzone = {PARAMNAME:「文件名」}

使用這個命令取回上傳的文件: req.file( '文件名')上傳(函數(ERR,UPLOADEDFILES){

});

UPLOADEDFILES包含文件

相關問題