In diesem Artikel wird hauptsächlich die Funktion des Hochladens von Bildern in die Datenbank und deren Anzeige auf der von vue implementierten Seite vorgestellt. Er analysiert die Datenbankoperation und die mit der Anzeige von Seitenbildern verbundenen Fähigkeiten anhand von Beispielen Bedarf kann darauf verweisen
Das Beispiel in diesem Artikel beschreibt die Funktion des Hochladens von Bildern in die Datenbank und deren Anzeige auf der von vue implementierten Seite. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Klicken Sie, um das Bild hochzuladen. Das Optionsfeld für die Bildauswahl wird angezeigt.
Seitencode:
<p class="form-signin-heading" id="btnUpload" @change="upload">上传图片</p> <input type="file" name="avatar" id="avatar" multiple="multiple" @change="upload"> <img :src="'http://localhost:8888'+item.photos_url" alt=""/>
Da wir den Stil des hochgeladenen Bildes festlegen möchten, verstecken wir die Eingabe und führen die folgenden Vorgänge aus, um das Klickereignis der Eingabe an die p-Box zu senden:
mounted: function () { var upload = document.getElementById("btnUpload"); var avatar = document.getElementById("avatar"); upload.onclick =function(){ avatar.click(); //注意IE的兼容性 }; }
2. Fügen Sie zwei Dateien zur Controller-Ebene der API-Schnittstelle hinzu und benennen Sie sie selbst, wie zum Beispiel:
upFile.js
let multer=require('multer'); let storage = multer.diskStorage({ //设置上传后文件路径,uploads文件夹会自动创建。 destination: function (req, file, cb) { cb(null, './public/uploads') }, //给上传文件重命名,获取添加后缀名 filename: function (req, file, cb) { let fileFormat = (file.originalname).split("."); cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]); } }); //添加配置文件到multer对象。 let upload = multer({ storage: storage }); module.exports = upload;
upFileController.js
var muilter = require('./upFile.js'); //multer有single()中的名称必须是表单上传字段的name名称。 var upload=muilter.single('file'); function dataInput(req, res) { upload(req, res, function (err) { //添加错误处理 if (err) { return console.log(err); } //文件信息在req.file或者req.files中显示。 let photoPath = req.file.path; photoPath = photoPath.replace(/public/,"");//将文件路径中的public\去掉,否则会和静态资源配置冲突 //将photoPath存入数据库即可 console.log(photoPath); res.send(photoPath); }); } module.exports = { dataInput };
3. Auf der Seite Speichern Sie die Adresse des Bildes in der Datenbank
upload: function (e) { var that = this; let formData = new window.FormData(); let file = e.target.files[0]; formData.append('file',file);//通过append向form对象添加数据 //利用split切割,拿到上传文件的格式 var src = file.name, formart = src.split(".")[1]; //使用if判断上传文件格式是否符合 if (formart == "jpg" || formart == "png" || formart == "docx" || formart == "txt" || formart == "ppt" || formart == "xlsx" || formart == "zip" || formart == "rar" || formart == "doc") { //只有满足以上格式时,才会触发ajax请求 this.$axios.post(this.$api.personalCenter.upFile,formData).then(function (res) { that.upFileData = res.data; }).then(function (res) { var params = { photos_url: that.upFileData, photo_des: '' }; // console.log(params.photos_url,'photos_url') that.$axios.post(that.$api.personalCenter.wallAdd,qs.stringify(params)).then(function (res) { console.log(res.data); that.$options.methods.imgList.bind(that)(); }).catch(function (err) { console.log(err); console.log("请求出错"); }) }) } else { alert("文件格式不支持上传"); } }
Das oben Gesagte habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Instanz von spirngmvc js, die komplexe JSON-Parameter an den Controller übergibt
Zusammenfassung des Vue.js-Formularsteuerungsvorgangs
JS-Methode zur Übergabe von Array-Parametern an den Hintergrundcontroller
Das obige ist der detaillierte Inhalt vonBeispiel für das Hochladen von Bildern in die Datenbank und deren Anzeige auf der in Vue implementierten Seite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!