Ich habe Probleme beim Hochladen von Dateien, um mit NodeJS zu arbeiten. Ich verwende Dropzone.JS ein Formular zu erstellen, die eine POST-Anforderung an/sendet Datei-Upload hier:multipart Datei-Uploads mit NodeJS
<form action="/file-upload" class="dropzone dragndrop" id="my-awesome-dropzone"></form>
Dann habe ich eine Route in app.js:
app.post('/file-upload', routes.upload);
Dann ist mein Handler:
exports.upload = function(req, res){
console.log(req.files);
res.send("OK");
}
Allerdings wird die Upload-Funktion hier nie aufgerufen. Der Server stürzt mit diesem Fehler zuerst:
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)
So sicher, ich bin nicht, was ich tun soll, weil es scheint, dass dies nicht meine Schuld ist. Ich folgte anderen Tutorials und sah nichts falsch. Auch, wenn ich mein Netzwerk unter Chrom Entwickler-Tools überprüfen, zeigt es:
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--
Es ist wie es scheint tatsächlich keine binären Daten übertragen werden. –
Was ist Ihre Knotenversion? Können Sie die Datei (Name und Ort) angeben, von der Ihr Handler aus app.js aufgerufen wurde und wie werden die Formulardaten analysiert? 'req.files' benötigt expressjs – user568109
Der Handler befindet sich in model.js, wo alle meine modelbezogenen Handler gehalten werden. Ich habe expressJS –