vue + multer 上传图片

vuejs(element-ui) + express (multer)上传文件

1.npm install multer --save

2. 新建vue文件

主要代码:

<form method="POST" enctype="multipart/form-data" class="form-horizontal" @submit.prevent="submit" ref="inputUpload">

<input type="file" name="resourceName" accept="audio/mpeg,image/png,image/jpeg" style="display:inline-block;width:250px;"

v-on:change="getFileInfo" />

<div slot="tip" class="el-upload_tip">Only .mp3, .png and .jpg file can be uploaded and size limit is 10MB.</div>

<el-button native-type="submit" class="el-icon-upload" :disabled="!formatFile">upload</el-button>

</form>

getFileInfo: function (event) {

if (event.target.files && event.target.files.length) {

this.upFile = event.target.files[0];

//主要读取file 显示一些信息

//....

submit: function (event) {

var self = this;

var fd = new FormData(event.target);

fetch(‘/uploadResource‘, {

method: ‘POST‘,

body: fd,

credentials: "include"

}).then(response => {//....})

}

3.  fetch里面的url (读取文件存放到指定的目录下面)

var fs = require(‘fs‘)

var multer = require(‘multer‘)

var path = "./public/static/upload";

// if (!fs.existsSync(path)) {

//     fs.mkdirSync(path)

// }

var storage = multer.diskStorage({

destination: function (req, res, cb) {

cb(null, path);

},

filename: function (req, file, cb) {

cb(null, file.originalname)

}

})

var upload = multer({

storage: storage,

limits: {

fieldNameSize: ‘10M‘

}

})

exports.singleUpload = function (req, res) {

s = uploadResource.single(‘imgUpload‘);

s(req, res, function (err) {

if (err) {

res.send({

‘status‘: ‘failed‘

})

} else {

res.send({

‘status‘: ‘ok‘

})

}

})

}

4. api增加到router

router.post(‘/getFile‘,upload.singleUpload)

其他补充:如果是excel 换成

accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

api里面解析的时候 用到 var xlsx = require(‘xlsx‘);//自己了解

时间: 2024-10-08 00:17:33

vue + multer 上传图片的相关文章

vue iOS上传图片file 出错

前言 用vue 移动端上传图片在低版本的 ios 手机上 图片转换base64 在转换file 文件类型 会报错 并且报错 "Script Error " 查阅了github 和一些文档发现 可以吧 file 改为 Blob 的  格式上传,哈哈 上的代码 changeBase(dataurl, filename) { var arr = dataurl.split(","), mime = arr[0].match(/:(.*?);/)[1], bstr = at

multer上传图片

app.js var fs = require('fs'); var express = require('express'); var multer = require('multer') var app = express(); var storage = multer.diskStorage({ //设置上传后文件路径,uploads文件夹会自动创建. destination: function (req, file, cb) { cb(null, 'upload/') }, //给上传文

基于VUE选择上传图片并在页面显示(图片可删除)

demo例子: 依赖文件 : http://files.cnblogs.com/files/zhengweijie/jquery.form.rar HTML文本内容: <template> <div id="accident"> <div class="wrapper"> <i class="icon-pic"></i>相关照片 <button type="button&

vue中上传图片至阿里云oss

1.开通阿里云的oss服务这些这里就不多做介绍了 2.登入阿里云的后台管理系统创建一个Bucket 3.在后台管理系统中进入访问控制 4.点击用户管理->新建用户->填写相关信息,就生成了下图3 5.点击生成用户右侧的授权,添加如图的授权策略 6.点击角色管理->新建角色,然后创建了一个如下图的H5ROULE角色 7.点击右侧授权,并选择如下图的授权策略 8.在vue组件中使用 <template> <div class="upload"> &

vue 限制上传图片的宽高(基于iviewUI)

1.需要效果 2.vue代码 <Upload multiple ref="uploadContent" :on-success="handleSuccess" :on-error="handleError" :format="['jpg','jpeg','png']" :on-format-error="handleFormatError" :show-upload-list="false&

使用axios+formdata+vue上传图片遇到后台接受不到图片的值的问题

先直接贴代码 html代码如下: <input type="file"@change="getFileExpr($event)"> <el-form id="uploadForm" :rules="rules2" method="post" enctype="multipart/form-data"> 这个地方我是使用的element ui框架中的form组件 原

Vue上传图片预览组件

父组件: <template> <div> <h4>基于Vue.2X的html5上传图片组件</h4> <div style="width: 502px;"> <uploader :src="'/api/imgsupload'"></uploader> </div> </div> </template> <script> import

使用VUE+iView+.Net Core上传图片

我们直接进入主题,使用VS2017开发工具 首先要创建一个WebApi项目,创建完之后,在wwwroot文件下,创建一个文件夹 名字可以随意起  我这里呢就叫做Upload了 ok ! 然后我们再创建一个控制器 IndexController 代码如下 要知道上传图片都是通过HTTP去请求,服务端从request中读取 public class PicData { public string Msg { get; set; } } [HttpPost] public async Task<boo

vue上传图片并压缩后以formData形式传给后台

vue上传图片 html <div id="file"> <input class="inputtt" type="file" @change="upfile($event)" accept="image/*" /> </div> js //上传图片 upfile(event) { var file = event.target.files[0] var name = e