2015-01-29 2 views
2

У меня есть форма, которая имеет файл типа ввода с именем «uploadfile». При выборе файла и отправке формы ошибки не возникает. Но имея эту ошибку, пока я не выбираю файл и не отправляю форму.Sails js Ошибка в файле Загрузить

`

if(req.file('uploadfile')._files.length>0){ 
       var ques_file = req.file('uploadfile'); 
       console.log('here'); 
       ques_file.upload({ 
        saveAs: function(file, cb) {      
          cb(null, file.filename); 
          }, 
        dirname: dirPath },function (err, files) { 
        if (err){       
        return res.serverError(err); 
        }else{      
        name =files[0].filename; 
        filename=name;      
        console.log("file : "+filename); 

        } 
       }); 

` И в commad имея эту ошибку

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: ETIMEOUT: An Upstream (`NOOP_ques_uploadfile`) timed out waiting for file(s). No files were sent after waiting 10000ms. 
    at null.<anonymous> (C:\xampp\htdocs\kucbt_admin\node_modules\sails\node_modules\skipper\standalone\Upstream\Upstream.js:62:15) 
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 

ответ

3

не следует использовать, если заявление для req.file(), вы можете проверить длину массива внутри function whenDone, как в примере ниже:

req.file('avatar').upload({ 
     saveAs: function(file, cb) { 
     cb(null, file.filename); 
     }, 
     dirname: uploadPath 
    }, function whenDone(err, uploadedFiles) { //onUploadComplete 
     if (uploadedFiles.length==0) { 
     //if no file selected. 
     sails.log.info('nothing selected'); 
     return res.view('showimage'); 
     } 
     if (err){ 
     return res.serverError(err); 
     } else{ 
     return res.view('showimage', {file:uploadedFiles}); 
     } 
    }); 
2

Попробуйте установить 0.5.5 из Skipper- таймера ETIMEOUT по умолчанию был продлен. Также в прошлых версиях проблемы ETIMEOUT для многих пользователей исходили из ошибок при загрузке многопартийной формы (т. Е. Неизвестного типа контента), которые ели ETIMEOUT.

Чтобы установить [email protected], вы можете напрямую привести его в качестве bodyparser в проекте, делая npm install skipper --save в проекте и configuring it as middleware, или вы можете просто установить Sails v0.11.x, который поставляется с обновленной версия.

На сегодняшний день, парусное v0.11 выпущено с «бетой» метками на НОМ, так что вы можете установить его непосредственно в проекте с помощью:

npm install [email protected] --save

+0

Я установил шкипер и пытался, он не работал. Снова я установил паруса @ бета, все еще не работающий. Имеет ту же ошибку. – Nakarmi