この記事では、vue で実装された画像をデータベースにアップロードしてページに表示する機能を主に、vue.js をベースにしたデータベース操作とページ画像表示関連の操作スキルをサンプル形式で紹介します。この記事の例を参照してください
画像をデータベースにアップロードし、vueで実装されたページに表示する機能について説明します。参考のためにみんなと共有してください。詳細は次のとおりです:
1. クリックして画像をアップロードすると、画像選択オプション ボックスが表示されます。
ページコード:
<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=""/>
アップロードした画像のスタイルを設定したいので、入力を非表示にし、入力のクリックイベントをpボックスに送信するために次の操作を実行します:
mounted: function () { var upload = document.getElementById("btnUpload"); var avatar = document.getElementById("avatar"); upload.onclick =function(){ avatar.click(); //注意IE的兼容性 }; }
2に2を追加します。 API インターフェースのコントローラー層 ファイルに、次のように名前を付けます:
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. 画像のアドレスをページ上のデータベースに保存します
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("文件格式不支持上传"); } }
上記は私が皆さんのためにまとめたものは、将来的に皆さんのお役に立つことを願っています。
関連記事:
複雑なjsonパラメータをコントローラに渡すspirngmvc jsのインスタンス
jsの配列パラメータをバックグラウンドコントローラに渡す方法
以上が画像をデータベースにアップロードし、Vueで実装したページに表示する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。