2015-06-25 18 views
2

我使用的是Sails 11.1和船長0.5.5。 我有一個表單在我的應用程序中創建一篇文章。圖像可以附加到文章,所以有一個輸入文件。帶船長的Sails.js:在開始上傳之前檢查文件輸入是否爲空

我想在服務器端檢查輸入文件是否爲空,然後嘗試開始上傳。

有沒有可能,如果是的話,我該怎麼做?

我試圖檢查req.filesreq.files.photo(「photo」是輸入名稱)和req.body.photo,但它們始終未定義,即使有文件。 req.file('photo')總是被定義的,所以我無法檢查它。

只是一個注意:當輸入填充文件時,上傳工作。

在此先感謝。

PS:這個問題也可以找到here,關於船長GitHub的問題。

回答

2

我幾周前在這個工作中發現的唯一工作解決方案是上傳文件,然後查看是否有文件已經上傳。

req.file(inputname).upload({ 
     dirname: targetLocation, 
     maxBytes: 2*1024*1024 
    }, 
    function (err, uploadedFiles) { 
     // do stuff with uploadedFiles 
    }); 

我不知道爲什麼你的req.file(inputname)回報null即使文件被上傳。

重要的是,請注意撥打req.file()是棘手的。我最初用它來確定文件大小,擴展名等。看起來好像是一種避免上傳任何東西的好方法,如果它不相關的話。但是,如果您在4.5秒(默認值)內未通過upload()呼叫來跟蹤該呼叫,則節點會因ETIMEDOUT錯誤而崩潰。我很難搞清楚,自那以後就沒有抱怨上述方法。

+0

是的,我知道這個解決方案,但我想知道是否可以檢查這個輸入文件是否爲空,如其他^^感謝您的快速和良好的答案。 我注意到這個節點崩潰:x 「我不確定爲什麼即使上傳文件,您的req.file(inputname)也會返回null。」正好相反:它總是返回一個對象。 –

相關問題