vue element upload如何带多个参数上传图片?

发布于 2022-09-06 09:07:21 字数 1929 浏览 12 评论 0

vue element upload如何带多个参数上传图片?

<el-form-item label="图片" >
    <el-upload
        class="upload-demo"
        ref="upload"
        drag
        :action="form.uploadUrl"
        :data="upLoadData"
        :onError="uploadError"
        :onSuccess="uploadSuccess"
        :before-upload="beforeImgUpload"
        multiple>
        <i class="el-icon-upload"></i>
        <div class="el-upload__text">将文件拖到此处,或<em>选择文件</em></div>
        <div class="el-upload__tip" slot="tip">请上传jpg/png文件,且不超过500kb</div>
    </el-upload>
    <img :src="dataUrl" />
</el-form-item>
    form: {
        ac_name: '',
        ac_id:'',
        ac_start_time: '',
        ac_end_time:'',
        uploadUrl:'http://www.youxia.com/yxcard/admin.php?s=/Activity/upload_img',
        fileList:[],
        ac_content: ''
    },
    dataUrl:'',
    upLoadData:{
        img_base64:"",
        type:1
    },

如何给我的img_base64赋值?这个是后台上传图片接口需要的参数

我写在before-upload方法里 ,老是报错

// 文件上传前
beforeImgUpload (file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function() {
        this.upLoadData.img_base64 = this.result;
        console.log(this.dataUrl);
        console.log(this.upLoadData.img_base64);
    };
},

图片描述

 // 文件上传前
beforeImgUpload (file) {
    const self = this;  //这个很重要!
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onloadend = function() {
        self.form.upLoadData.img_base64 = this.result;
        console.log(self.form.upLoadData.img_base64);
    };
    console.log(this.form.upLoadData.img_base64);
},

这里第一个断点能打出来,第二个为什么是空的?我不是已经赋值了么,后台收到也是说文件为空!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

捂风挽笑 2022-09-13 09:07:21

添加个data

<el-upload
action="/"
:data="{参数}">
</el-upload>

烟花易冷人易散 2022-09-13 09:07:21

clipboard.png


希望帮助到你

老旧海报 2022-09-13 09:07:21

问题解决了!

beforeImgUpload (file) {
    const self = this;  //这个很重要!
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function() {
        self.upLoadData.img_base64 = this.result;
        console.log(self.upLoadData.img_base64);
    };
},

要注意 this的用法,心累 。。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文