2
我們想要實現一個功能,通過ajax
調用將多個文件上傳到ExpressJS服務器並返回其所有唯一的URL。使用強大的節點文件上傳不起作用
以下是我的前端代碼示例:
var formData = new FormData();
for (var i = 0; i < nameId.length; i++) {
if($(nameId[i])[0].files[0]){
formData.append(nameId[i], $(nameId[i])[0].files[0], $(nameId[i])[0].files[0].name);
}
}
$.ajax({
url: '/upload-files',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(data){
console.log('upload successful!');
console.log(data);
}
});
而在我們的路由器,我們下面的代碼片斷接受請求並存儲文件:曾
router.post('/upload-files',function(req, res, next){
var form = new formidable.IncomingForm();
form.multiples = true;
form.uploadDir = path.join(__dirname, '/uploads');
form.on('file', function(field, file) {
console.log("File incoming");
fs.rename(file.path, path.join(form.uploadDir, file.name));
});
form.on('error', function(err) {
console.log('An error has occured: \n' + err);
});
form.on('end', function() {
res.end('success');
});
});
但是,沒有什麼發生在路由器中。請求進入路由器內部,但之後什麼都沒有。
這裏有什麼不對嗎?在長時間的等待請求失敗後,我們沒有在服務器端和客戶端發生任何錯誤。
請建議。 感謝