问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue2.x,element-ui 中上传图片组件(图片查看,已有图片渲染)

发布网友 发布时间:2022-11-21 14:48

我来回答

1个回答

热心网友 时间:2024-12-04 18:47

1、基本标签结构

<el-upload name="picture" 

            :action="'/api/image/upload?imageType=xxx" 

            accept=".jpg, .png"      

            list-type="picture-card" 

           :limit="1"    

           :file-list="filelists"

            :on-exceed="onExceed" 

            :before-upload="beforeUpload"  

            :on-preview="handlePictureCardPreview"      

            :on-success="imagesuccess"   

            :on-remove="handleRemove">

            <i class="el-icon-plus"></i>  

 </el-upload>

<!--预览-->

<el-dialog :visible.sync="imgPreviewVisible" size="full" :modal="false" title="预览">

                <img width="100%" :src="imagePreviewUrl" alt="">

</el-dialog>

方法示例:

onExceed(files, fileList) { 

                this.$message({

                        type: 'info',

                        message: '最多只能上传一个图片',  

                        ration: 6000

                });

},

beforeUpload(file) {

                const isJPG = file.type === 'image/jpeg';  

                const isGIF = file.type === 'image/gif';  

                const isPNG = file.type === 'image/png';

                const isBMP = file.type === 'image/bmp'; 

                const imgSizeLimit= file.size  < 1*1024*1024;

                if (!isJPG && !isGIF && !isPNG && !isBMP) {

                     this.$message.error('上传图片必须是JPG/GIF/PNG/BMP 格式!'); 

                }

                if (!imgSizeLimit) { 

                        this.$message.error('上传图片大小不能超过 1MB!');

                }

                return (isJPG || isBMP || isGIF || isPNG) && imgSizeLimit;                                                                                                                           }, 

handlePictureCardPreview:function(file){

        //todo

 },

imagesuccess:function(response, file, fileList){

         //todo

         this.filelists  = [];

          this.filelists  = [file]

 },

handleRemove:function(file, fileList){

           //todo

 },


2、action为后台上传图片接口

      file-list为文件列表

      limit为设置的可上传文件的最大个数

      onExceed上传的文件个数超出设定时触发的函数,参数为上传的文件file和文件列表 filelists  

      beforeUpload文件上传前执行,参数为上传的文件file,如果返回false或者返回Primary且被reject,则停止上传

      handlePictureCardPreview图片预览时触发,参数为上传的文件file,

      imagesuccess图片上传成功时触发参数response, file, filelists  

      handleRemove移除图片时触发,参数为file, filelists  

3、已有图片渲染问题:

自己在实际开发过程中,会遇到编辑情况,并且已经存在一张图片,想要放到图片组件中,可以调用组件里声明的方法。

由于是新手,组件使用不熟练,所以我将图片的显示与上传等操作分离,单独自己去展示,上传时再使用组件上传,使用组件的:show-file-list="false"属性来隐藏组件自带的图片展示功能。

后来发现自己可以自己初始化filelists列表,来使已存在的图片文件放入组件中,放入的对象当然时文件,但是我后台只有图片地址,如何拼出一个file格式对象来呢?通过debug,我发现上传的文件格式对象有好多属性,当然,存在url这个属性就可以通过组件进行展示。最简单的一种方式就是直接创建一个只有一个url属性的对象var file = {     url:this.showDetailForm.profilePhotoPath     }    this.filelists.push(file)  然后push到文件列表,就可以在组件中进行渲染,对图片的操作可以使用声明的方法+表单属性来实现业务的全过程(当然,这样渲染的文件只有url,没有其他属性,比如文件大小,涉及到其他属性的函数都没办法调用)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我想下个好点的股市行情软件,光大证券金阳光app怎么样啊? 股票行情软件下载选哪个比较好?光大证券的金阳光app怎么样? 光大证券开户APP是什么 光大用什么炒股软件 家里房顶漏水怎么办 房顶漏水最好补漏方法 中石化薪资揭秘(天津、海南、镇海、中科、茂名) 专科生在茂名石化待遇怎样 茂名石化正式工待遇怎么样 茂名石化待遇如何 729-08胶皮是内能的吗 什么美图软件滤镜能p出网络图片的感觉 飞利浦液晶显示屏忽闪忽亮的,一会儿黑屏一会儿又亮起来,一直持续这样... 我的飞利浦电脑显示屏21.5的分辨率设到最大怎么还是很模糊 hud汽车抬头显示是什么? 抚顺市二十六中八年级两科不及格能排多少名? 初二人教物理二学期复习提纲 logo设计基础知识汇总 货到付款的商品,快递送到后,消费者需要支付的金额种类有 红枣每天吃几个最好 红枣每天吃几个最好呢 dell二手移动工作站为什么都是美版的 易通ic消费管理系统如何数据库创建 课堂无手机,校园满书香是对偶吗 无手机课堂创意标语 IC消费管理系统减款余额是负数是什么情况 元氏县吉通通信工程有限公司怎么样? 光照条件对理想L9的HUD显示是否有影响? 帮答下HUD汽车抬头显示应具备什么作用? 既然HUD产品号称可以取代仪表盘,为何在理想L9中依旧有方向盘上的数据... 物联网开发有哪些比较有经验的公司呢? 理想L9的HUD是否会信息过多?影响视线吗? 接口返回的一个图片文件, 前端用vue如何显示? 手机安全管家官方下载? 高二下册物理交变电流题 两道高二物理交变电流问题 高二物理交变电流!!!急!!! 高二物理:交变电流的题目求教》》》 高二交变电流物理题~~ 高二物理交变电流 急急急~~~ 问高二物理:如图所示是交变电流 高二物理 做第二章交变电流的题时遇到 说 某灯的发光电压和熄灭电压都是... 我相知到网球的相关知识!谢谢大家!! dev/sd3:clean卡住了 求指导 hud比例有什么用 AVA画面比例和分辨率怎么调。我要小字体的,急 一碗羊汤能放几两肉 庙子大锅全羊得做法与配方,全羊汤里的羊肉与羊杂的配比是? 一斤羊杂碎能煮几两 怎样才能查询电信宽带套餐里每个手机打电话的请单 忘记手机密码怎样查询请单 查询手机联通网上营业厅话费请单