In diesem Artikel wird hauptsächlich die Verwendung von Multer-Upload in der Express-Serie vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
Ich habe „The Definitive Guide to NodeJS“ schon lange gelesen, aber ich habe es nie sorgfältig gelesen Zeit.
Es gibt immer noch viele Vorteile, hauptsächlich aufgrund einiger Details der Verwendung von Wenpack. Außerdem bin ich nicht mehr verwirrt über den Knoten. Aber um ehrlich zu sein, ist es auf der aktuellen Ebene ziemlich schwierig, etwas direkt mit dem Knoten zu tun. Heute habe ich den Link zur Mongodb- und MySQL-Datenbank getestet. Obwohl er verwendet werden kann, ist er immer noch seltsam. Daher möchte ich zuerst das vorhandene Framework verwenden und dann den Knoten rückwärts lernen.
Für das Framework habe ich mich entschieden
Ich habe hauptsächlich die in mehreren Büchern erwähnte Middleware getestet und viele APIs sind veraltet ein aktualisierter Ort.
Was ich derzeit nützlich finde, sind: Multer und Statik.
Letzterer kann die Seite lokal debuggen, was besonders für mobile Seiten nützlich ist.
Dieses Mal werde ich hauptsächlich über Multer sprechen. Ich habe nicht alle Funktionen implementiert, sondern nur die Funktion zum Hochladen eines einzelnen Bildes, und ich werde die anderen erkunden.
Dies ist das gesamte Dateiverzeichnis, es gibt zwei Hauptdateien, eine ist main.js im Stammverzeichnis und die andere ist public/index.html.
Platzieren Sie den Code:
//main.js let express = require('express'); var multer = require('multer') var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'public/'); }, filename: function (req, file, cb) { cb(null, Date.now() + '.png'); } }) var upload = multer({ storage: storage }) //var upload = multer({ dest: 'public/' }) let app = express() app.use(express.static('public')) app.post('/public/index.html',upload.single('myfile'),(req,res,next)=>{ console.log(req.file) res.send(req.file) }) app.listen(3300,'127.0.0.1')
<!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <input type="file" id="file" accept="image/*"> <p id="result"></p> <img src="" alt="" id="img" width="40" height="40"> <script> let file = document.getElementById('file'); file.onchange = function (e) { let file = e.target.files[0]; let xhr = new XMLHttpRequest(); let fd = new FormData(); fd.append('myfile', file) xhr.open('post', '/public/index.html') xhr.onload = function () { // console.log(xhr) if (xhr.status === 200) { let data = JSON.parse(xhr.responseText) document.getElementById('result').innerHTML = this.response document.getElementById('img').src = data.filename } } xhr.send(fd) } </script> </body> </html>
Ich möchte nicht auf die JQuery-Bibliothek verweisen , also habe ich nativ Ajax geschrieben, im Allgemeinen sollte es nicht schwierig sein, nach dem Klicken auf die Schaltfläche zum Auswählen des Bildes werden die Bildinformationen in einem Objekt mit dem Schlüsselnamen myfile
platziert und an den Hintergrund übergeben.
Express speichert die empfangenen Bilder in der /public/
-Datei. Hier gibt es eine kleine Gefahr. Sie können sehen, dass ich diese Codezeile in main.js
kommentiert habe:
var upload = multer({ dest: 'public/' })
Tatsächlich habe ich diese Codezeile am Anfang verwendet, was <🎜 bedeutet > Es muss ein Pfad zum Speichern der Datei ausgewählt werden, es gibt jedoch ein kleines Problem beim Schreiben auf diese Weise. Die gespeicherte Datei hat kein Suffix. dest
res.send(req.file)
var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'public/'); }, filename: function (req, file, cb) { cb(null, Date.now() + '.png'); } }) var upload = multer({ storage: storage })
ist die Adresse, an der die Datei gespeichert ist, und destination
Einstellungen ist der Name der Datei. Wenn er dann so geschrieben ist: filename
filename: function (req, file, cb) { cb(null, file.fieldname + '.png'); }
myfile.png
Das war's vorerst. Ich werde es das nächste Mal aktualisieren, wenn ich weitere Bilder hochlade.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Hochladen und Verwenden von Express Multer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!