Mam problemy z pobieraniem plików do pracy z NodeJS. Używam Dropzone.JS utworzyć formularz, który wysyła żądanie POST do/pliku przesłać tutaj:multipart Przesyłanie plików przy użyciu NodeJS
<form action="/file-upload" class="dropzone dragndrop" id="my-awesome-dropzone"></form>
Wtedy muszę trasy w app.js:
app.post('/file-upload', routes.upload);
Wtedy mój obsługi:
exports.upload = function(req, res){
console.log(req.files);
res.send("OK");
}
Jednak funkcja przesyłania tutaj nigdy nie jest wywoływana. Serwer najpierw zawiesza się z tym błędem:
events.js:69
throw arguments[1]; // Unhandled 'error' event
^
Error: Invalid data
at WriteStream._write (fs.js:1616:31)
at onwrite (_stream_writable.js:265:14)
at WritableState.onwrite (_stream_writable.js:94:5)
at fs.js:1628:5
at Object.wrapper [as oncomplete] (fs.js:475:5)
at process._makeCallback (node.js:321:24)
Więc nie jestem pewien, co powinienem zrobić, ponieważ wydaje się, że to nie moja wina. Śledziłem inne tutoriale i nie widziałem niczego złego. Również, kiedy sprawdzać mojej sieci pod chrome narzędzia dev, to pokazuje:
Request URL:http://localhost:3000/file-upload
**Request Headers**
Accept:application/json
Cache-Control:no-cache
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryMmLSkbfQskfIcjfE
Origin:http://localhost:3000
Pragma:no-cache
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
X-File-Name:Screenshot from 2013-03-20 12:23:42.png
X-Requested-With:XMLHttpRequest
**Request Payload**
------WebKitFormBoundaryMmLSkbfQskfIcjfE
Content-Disposition: form-data; name="file"; filename="Screenshot from 2013-03-20 12:23:42.png"
Content-Type: image/png
------WebKitFormBoundaryMmLSkbfQskfIcjfE--
Wydaje się, podobnie jak nie ma żadnych danych binarnych rzeczywiście przeniesiony. –
jaka jest twoja wersja węzła? czy możesz podać plik (nazwę i lokalizację), z którego program obsługi wywołujesz z app.js i jak analizujesz dane formularza? 'req.files' wymaga expressjs – user568109
handler znajduje się w model.js, gdzie są przechowywane wszystkie moje programy obsługi związane z modelem. Mam expressJS –