Bitte berücksichtigen Sie neuere Antworten mit aktuelleren Informationen, da sich die Dinge im Laufe der Jahre geändert haben!
Da viele neue Node.js-Bibliotheken schnell veraltet sind und es sowieso relativ wenige Beispiele gibt, möchte ich nach dem Hochladen von Bildern fragen, indem ich:
- Node.js (v0.4.1)
- Express (1.0.7)
- Mungo (1.1.0).
Wie haben andere das gemacht?
Ich habe festgestellt: Node-Formidable , aber ich bin neu im Hochladen von Bildern im Allgemeinen, daher möchte ich allgemeine Informationen und Möglichkeiten dazu mit Node.js und Express erlernen.
npm install multer --save
und dann in Ihrer App können Siereq.files.your_file_param_name
mitaws-sdk
oderfs.writeFile(...)
Antworten:
Ich werde zum ersten Mal meine eigene Frage beantworten. Ich habe ein Beispiel direkt aus der Quelle gefunden. Bitte vergib die schlechte Einkerbung. Ich war mir nicht sicher, wie ich beim Kopieren und Einfügen richtig einrücken sollte. Der Code stammt direkt aus dem Express-
multipart/form-data
Beispiel auf GitHub.quelle
Da Sie Express verwenden, fügen Sie einfach bodyParser hinzu:
dann hat Ihre Route automatisch Zugriff auf die hochgeladenen Dateien in req.files:
Wenn Sie das Eingabesteuerelement wie folgt "todo" nennen (in Jade):
Dann ist die hochgeladene Datei fertig, wenn Sie den Pfad und den ursprünglichen Dateinamen in 'files.todo' erhalten:
andere nützliche Eigenschaften von req.files:
quelle
bodyParser
ist zumindest dementsprechend unsicher: andrewkelley.me/post/do-not-use-bodyparser-with-express-js.html . Jon Js Antwort hat bei mir funktioniert.Sie können die Middleware des Connect Body Parser in einem Konfigurationsblock in Ihrer Hauptanwendungsdatei konfigurieren:
quelle
Das Beste, was Sie tun können, ist, das Bild einfach auf die Festplatte hochzuladen und die URL in MongoDB zu speichern. Ruhen Sie sich aus, wenn Sie das Bild erneut abrufen. Geben Sie einfach die URL an und Sie erhalten ein Bild. Der Code zum Hochladen lautet wie folgt.
Speichern Sie nun den Zielpfad in Ihrer MongoDB-Datenbank.
Extrahieren Sie beim Abrufen des Bildes einfach die URL aus der MongoDB-Datenbank und verwenden Sie sie für diese Methode.
quelle
Versuchen Sie diesen Code. Es wird helfen.
quelle
util.pump(ins, ous)
abgeschrieben wird, könnte diesins.pipe(ous);
jetzt erledigt werden . Aber wird dadurch die Bilddatei am alten Speicherort entfernt?Sie können auch Folgendes verwenden, um einen Pfad festzulegen, in dem die Datei gespeichert wird.
quelle
Ich habe ein Beispiel erstellt , das Express und Multer verwendet. Es ist sehr einfach und vermeidet alle Connect- Warnungen
Es könnte jemandem helfen.
quelle
bodyParser
(was unsicher ist, siehe andrewkelley.me/post/do-not-use-bodyparser-with-express-js.html )Wenn Sie bodyParser nicht verwenden möchten, funktioniert Folgendes:
quelle
Wenn Sie für Express 3.0 die beeindruckenden Ereignisse verwenden möchten, müssen Sie die mehrteilige Middleware entfernen, damit Sie die neue Instanz davon erstellen können.
Um dies zu tun:
Kann geschrieben werden als:
Und jetzt erstellen Sie das Formularobjekt:
Ich habe dies auch in meinem Blog gepostet: Beim Hochladen in Express 3.0 ein beeindruckendes Formularobjekt erhalten .
quelle
Ich weiß, dass sich die ursprüngliche Frage auf bestimmte Versionen bezog, aber sie bezog sich auch auf den "neuesten" - @ JohnAllen-Beitrag ist aufgrund von Expressjs bodyParser und Verbindungsformular nicht mehr relevant
Dies zeigt den benutzerfreundlichen eingebauten bodyParser ():
quelle
Es gibt meine Methode für mehrere Upload-Dateien:
Nodejs:
Stellen Sie sicher, dass Ihr Formular enctype = "multipart / form-data" hat.
Ich hoffe das hilft dir;)
quelle
Hier ist eine Möglichkeit, Ihre Bilder mit dem beeindruckenden Paket hochzuladen, das in späteren Express-Versionen gegenüber bodyParser empfohlen wird. Dies beinhaltet auch die Möglichkeit, die Größe Ihrer Bilder im laufenden Betrieb zu ändern:
Von meiner Website: Hochladen und Ändern der Größe von Bildern (im laufenden Betrieb) Mit Node.js und Express .
Hier ist das Wesentliche:
HINWEIS: Dies erfordert Image Magick für die schnelle Größenänderung des Daumens.
quelle