解决element-ui中组件【el-upload】一次性上传多张图片的问题

这篇具有很好参考价值的文章主要介绍了解决element-ui中组件【el-upload】一次性上传多张图片的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

element-ui 中的组件 el-upload默认的行为是一张图片请求一次,在项目需求中,通常要求多张图片只向后台发送一次请求,下面的做法就可以解决这样的需求

前端
<template>
	<el-upload
		ref="upload"
		:action="actionUrl"
		:auto-upload="false"
		list-type="picture-card"
		:http-request="uploadFile"
		:on-preview="handlePictureCardPreview"
		accept="image/png, image/jpeg"
		multiple
		:limit="9"
	>
		<i class="el-icon-plus"></i>
	</el-upload>
	<button
		type="button"
		class="btn btn-primary btn-sm submit-btn"
		@click="submitUpload"
	>发布</button>
</template>
<script>
export default {
	data() {
	    return {
	      formData: {},
	    }
	}
	methods: {
		// 绑定在http-request,覆盖上传事件
		uploadFile(file) {
	        this.formData.append("blogimg", file.file);
	    },
	    // 点击按钮触发
	    async submitUpload() {
	        this.formData = new FormData();
	        this.formData.append("content", this.blogData.content);
	        this.formData.append("token", this.token);
	        this.$refs.upload.submit();
	        const { data: res } = await this.$http.post(
	        	this.actionUrl,
	            this.formData,
	        	{
	            	headers: { "Content-Type": "multipart/form-data" }
	        	}
	        );
	      	if (res.meta.status !== 200) {
	        	return this.$message.error("发布失败!");
	      	}
	      	this.getUserBlogs();
	      	this.blogData.content = "";
	      	this.$refs.upload.clearFiles();
	      	this.$message.success("发布成功!");
	    },
	}
};
</script>
后端

后端使用的是multer中间件,用来接收前端发送过来的multipart/form-data形式的数据文章来源地址https://www.toymoban.com/news/detail-525768.html

multer.js
const multer = require("multer");
const path = require("path");
let dst = "../uploads";
let storageBlogimg = multer.diskStorage({
  destination: function(req, file, cb) {
    cb(null, path.join(__dirname, dst));
  },
  filename: function(req, file, cb) {
    let ext = file.originalname.substr(file.originalname.lastIndexOf("."));
    let filename = file.fieldname + "-" + Date.now() + ext;
    cb(null, filename);
  },
});
exports.storeBlogimg = multer({ storage: storageBlogimg });
router.js
const store = require("../middleware/multer");
router.post(
  "/api/createBlog",
  store.storeBlogimg.array("blogimg"),//
  blog_controller.createBlog
);
// array("blogimg")中的参数名称要和表单中的键值一样(blogimg) 
// this.formData.append("blogimg", file.file);

到了这里,关于解决element-ui中组件【el-upload】一次性上传多张图片的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui ,el-upload 文件上传必选项校验

    代码

    2024年02月11日
    浏览(65)
  • 使用element-ui的el-upload进行excel文件上传与下载

    需求:前端上传文件后,后端接受文件进行处理后直接返回处理后的文件,前端直接再将文件下载下来。 通常我们都是直接使用el-upload的action属性来直接完成文件上传的操作,如果要进行后续文件的直接下载,可以在on-success中用代码进行操作,若存在401权限问题也可以直接

    2024年02月11日
    浏览(45)
  • Element之el-upload多文件一次性上传

    方法一: 页面展示: Html部分代码: accept 用于限制允许上传哪些类型文件 name 上传的文件字段名  (默认为 file) multiple 是否支持多选文件 action 必选参数,上传的地址 headers 设置上传的请求头部 file-list 上传列表 auto-upload 是否在选取文件后立即进行上传 主要逻辑: 1. 多选文

    2024年02月11日
    浏览(43)
  • vue Element ui上传组件el-upload封装

    注释: 1. limit 可上传图片数量 2. lableName 当前组件name,用于一个页面多次使用上传组件,对数据进行区分 3. upload 上传图片发生变化触发,返回已上传图片的信息 4. imgUrl 默认图片

    2024年02月11日
    浏览(63)
  • element UI el-upload组件实现视频文件上传视频回显

    项目中需要提供一个视频介绍,使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传API并返回URL, 百度找了一番后最终实现了。 HTML JS data css 成功后的截图  

    2024年02月06日
    浏览(57)
  • 【element-UI】el-upload本地上传图片,点击表单提交和一起上传,使用formdata对象上传

    需求效果如下图: 因为后端要求图片需要和其他参数一起提交,使用formdata对象携带参数,通过设置el-upload中action参数值为#,以及auto-upload(是否在选取文件后立即进行上传)为false 接口api

    2024年02月12日
    浏览(58)
  • element-ui的el-upload上传文件按钮在选取文件按钮禁用后仍可点击问题

    element-ui的el-upload上传文件按钮在选取文件按钮禁用后仍可点击,如下图: 点击按钮已经置灰,但是仍能点开选择图片弹窗,虽然无法上传,但是体验不好。 听说是因为:disabled只是禁用了点击事件,并没有禁用打开文件选择窗口 方法一: 附代码: 方法二: 换成一个假的

    2024年02月11日
    浏览(57)
  • Vue的element UI关于el-upload的按钮和button不在同一行的解决

    首先,我们知道,在upload组件里内置,slot标签以及trigger属性,可以保证各个按钮button在同一行。但是,存在两个问题: ①upload中的button总是在第一个位置,无论你怎么调整都是在第一个位置。 ②upload中标签总是和相邻标签在一起。 ①一但我们去掉trigger,即可恢复正常,但

    2024年02月13日
    浏览(52)
  • element ui ---- el-upload实现手动上传多个文件

    ui部分 js 实现上传

    2024年02月15日
    浏览(55)
  • element ui实现el-upload用户头像上传(单图上传)

     这是我们要实现的效果 element ui上的代码和效果如下:  接下来我们需要将图片文件上传到接口中,实现代码如下:

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包