Veuillez envisager des réponses plus récentes qui contiennent des informations plus à jour, car les choses ont changé au fil des ans!
Étant donné que de nombreuses nouvelles bibliothèques Node.js sont rapidement rendues obsolètes et qu'il y a relativement peu d'exemples de toute façon, je veux poser des questions sur le téléchargement d'images en utilisant:
- Node.js (v0.4.1)
- Express (1.0.7)
- Mangouste (1.1.0).
Comment les autres l'ont-ils fait?
J'ai trouvé: node-formidable , mais je suis nouveau dans le téléchargement d'images en général, donc je veux apprendre des choses générales et des façons de le faire en utilisant Node.js et Express.
npm install multer --save
puis dans votre application, vous pouvez accéderreq.files.your_file_param_name
et enregistrer en s3 avecaws-sdk
oufs.writeFile(...)
Réponses:
Je répondrai à ma propre question pour la première fois. J'ai trouvé un exemple directement à la source. Veuillez pardonner la mauvaise indentation. Je ne savais pas trop comment mettre en retrait correctement lors du copier-coller. Le code vient directement de l'
multipart/form-data
exemple Express sur GitHub.la source
Puisque vous utilisez express, ajoutez simplement bodyParser:
alors votre itinéraire a automatiquement accès aux fichiers téléchargés dans req.files:
Si vous nommez le contrôle d'entrée "todo" comme ceci (en Jade):
Ensuite, le fichier téléchargé est prêt au moment où vous obtenez le chemin et le nom de fichier d'origine dans 'files.todo':
autres propriétés utiles de req.files:
la source
bodyParser
n'est pas sûr, du moins d'après ceci: andrewkelley.me/post/do-not-use-bodyparser-with-express-js.html . La réponse de Jon J a fonctionné pour moi.Vous pouvez configurer le middleware de l'analyseur de corps de connexion dans un bloc de configuration de votre fichier d'application principal:
la source
Vous voyez, la meilleure chose à faire est de simplement télécharger l'image sur le disque et d'enregistrer l'URL dans MongoDB. Reposez-vous lorsque vous récupérez à nouveau l'image. Spécifiez simplement l'URL et vous obtiendrez une image. Le code de téléchargement est le suivant.
Enregistrez maintenant le chemin cible dans votre base de données MongoDB.
Encore une fois, lors de la récupération de l'image, extrayez simplement l'URL de la base de données MongoDB et utilisez-la sur cette méthode.
la source
Essayez ce code, cela vous aidera.
la source
util.pump(ins, ous)
est amorti, cela pourrait être faitins.pipe(ous);
maintenant. Mais cela supprimera-t-il le fichier image de l'ancien emplacement?Vous pouvez également utiliser ce qui suit pour définir un chemin où il enregistre le fichier.
la source
J'ai créé un exemple qui utilise Express et Multer. C'est très simple et évite tout Connect avertissements
Cela pourrait aider quelqu'un.
la source
bodyParser
(ce qui n'est pas sûr, voir andrewkelley.me/post/do-not-use-bodyparser-with-express-js.html )Encore une fois, si vous ne souhaitez pas utiliser bodyParser, ce qui suit fonctionne:
la source
Pour Express 3.0, si vous souhaitez utiliser les événements formidables, vous devez supprimer le middleware en plusieurs parties afin de pouvoir en créer la nouvelle instance.
Pour faire ça:
Peut s'écrire:
Et maintenant, créez l'objet de formulaire:
J'ai également publié ceci sur mon blog, Obtenir un formidable objet de formulaire dans Express 3.0 lors du téléchargement .
la source
Je sais que la question originale concernait des versions spécifiques, mais elle faisait également référence à la "dernière" - La publication de @JohnAllen n'est plus pertinente en raison d' Expressjs bodyParser et connect-form
Cela démontre le bodyParser () intégré facile à utiliser:
la source
Voici ma méthode pour télécharger plusieurs fichiers:
Nodejs:
Assurez-vous que votre formulaire contient enctype = "multipart / form-data"
J'espère que cela vous donne un coup de main;)
la source
Voici un moyen de télécharger vos images à l'aide du formidable package, qui est recommandé par rapport à bodyParser dans les versions ultérieures d'Express. Cela inclut également la possibilité de redimensionner vos images à la volée:
Depuis mon site Web: Télécharger et redimensionner des images (à la volée) avec Node.js et Express .
Voici l'essentiel:
REMARQUE: Cela nécessite Image Magick pour le redimensionnement rapide du pouce.
la source