2016-06-20 3 views
0

Я не могу заставить себя работать, несмотря ни на что; Я читал все, что мог найти по этому вопросу, и, насколько я понимаю, я следил за ними в меру своих возможностей.Загрузка файла с использованием Express и multer

Here is a JSFiddle link to my work.

Я никогда не могу загрузить файл, несмотря на его загрузку. В моем коде, я

app.post('/submit', function(req, res) { 
    console.log("____ Clicked submit ____"); 
    console.log(req.body); 

    console.dir(req.files); 
}); 

req.body.attachment покажет имя файла я прилагается. Однако req.files возвращает undefined.

Я ценю любую помощь.

ответ

0

Вы должны использовать обработчик multer где-то в цепочке промежуточного программного обеспечения. Вы определили обработчик с помощью:

var upload = multer({ 
    dest: './tmp/' 
}); 

Но вы не используете его в цепочке промежуточного программного обеспечения.

Есть два варианта: 1) Используйте глобальный обработчик (верхней цепи, не рекомендуется) 2) Используйте его на submit маршрут (рекомендуется)

Прочитайте docs для конкретной реализации, но нижеследующий должен работать.

// Multer parses single field "attachment" 
app.post('/submit', upload.single('attachment'), function(req, res) { 
    console.log("____ Clicked submit ____"); 
    console.log(req.body); 

    // console.dir(req.files); 
    // for single field use `req.file`, not `req.files` 
    console.log(req.file); 
}); 
+0

Я уже пробовал это. Я знал, что забыл что-то, но это все еще дает «неопределенный». возможно, это связано с сценарием, который я использую в своем html в самом низу? – Nxt3

+0

Абсолютно. Вам нужно обрабатывать множественные запросы по-разному по сравнению с XHR. Это может помочь вам: http://stackoverflow.com/questions/5392344/sending-multipart-formdata-with-jquery-ajax – Nindaff

+0

Я добавлял дополнительный скрипт, чтобы остановить перезагрузку страницы при отправке формы; как я могу остановить перезагрузку страницы, сохраняя при этом обработку содержимого формы на сервере? – Nxt3

Смежные вопросы