Maison > interface Web > js tutoriel > Exemple de téléchargement d'images dans la base de données et de leur affichage sur la page implémentée dans Vue

Exemple de téléchargement d'images dans la base de données et de leur affichage sur la page implémentée dans Vue

亚连
Libérer: 2018-05-29 16:07:57
original
4692 Les gens l'ont consulté

Cet article présente principalement la fonction de téléchargement d'images dans la base de données et de leur affichage sur la page implémentée par vue. Il analyse le fonctionnement de la base de données et les compétences opérationnelles liées à l'affichage des images de page basées sur vue.js sous forme d'exemples. le besoin peut s'y référer

L'exemple de cet article décrit la fonction de téléchargement d'images dans la base de données et de leur affichage sur la page implémentée par vue. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1 Cliquez pour télécharger l'image et la boîte d'option de sélection d'image apparaîtra.

Code de la page :

<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=""/>
Copier après la connexion

Puisque nous voulons définir le style de l'image téléchargée, nous masquons l'entrée et procédons comme suit pour donner l'événement click de l'entrée à la boîte p :

mounted: function () {
 var upload = document.getElementById("btnUpload");
 var avatar = document.getElementById("avatar");
 upload.onclick =function(){
  avatar.click(); //注意IE的兼容性
 };
}
Copier après la connexion

2. Ajoutez deux fichiers à la couche contrôleur de l'interface API et nommez-les vous-même, par exemple :

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;
Copier après la connexion

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
};
Copier après la connexion

3. Enregistrez l'adresse de l'image dans la base de données sur la page

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("文件格式不支持上传");
    }
}
Copier après la connexion

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde. l'avenir.

Articles connexes :

Instance de spirngmvc js transmettant des paramètres json complexes au contrôleur

Résumé de l'opération de contrôle de formulaire Vue.js

Méthode JS pour transmettre les paramètres du tableau au contrôleur d'arrière-plan

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal