Heim > Web-Frontend > js-Tutorial > Hauptteil

Beispiel für das Hochladen von Bildern in die Datenbank und deren Anzeige auf der in Vue implementierten Seite

亚连
Freigeben: 2018-05-29 16:07:57
Original
4677 Leute haben es durchsucht

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="&#39;http://localhost:8888&#39;+item.photos_url" alt=""/>
Nach dem Login kopieren

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的兼容性
 };
}
Nach dem Login kopieren

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(&#39;multer&#39;);
let storage = multer.diskStorage({
  //设置上传后文件路径,uploads文件夹会自动创建。
  destination: function (req, file, cb) {
    cb(null, &#39;./public/uploads&#39;)
  },
  //给上传文件重命名,获取添加后缀名
  filename: function (req, file, cb) {
    let fileFormat = (file.originalname).split(".");
    cb(null, file.fieldname + &#39;-&#39; + Date.now() + "." + fileFormat[fileFormat.length - 1]);
  }
});
//添加配置文件到multer对象。
let upload = multer({
  storage: storage
});
module.exports = upload;
Nach dem Login kopieren

upFileController.js

var muilter = require(&#39;./upFile.js&#39;);
//multer有single()中的名称必须是表单上传字段的name名称。
var upload=muilter.single(&#39;file&#39;);
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
};
Nach dem Login kopieren

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(&#39;file&#39;,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: &#39;&#39;
      };
//      console.log(params.photos_url,&#39;photos_url&#39;)
      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("文件格式不支持上传");
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage