html :

<el-upload
:headers="header" // 请求头参数(一般包含token,认证参数authorization)
:data="uploadData" // 额外的其他参数,自行配置如:{‘A’ :'B'}
accept="image/jpeg,image/jpg,image/png" // 限制图片格式
:action="uploadCoverUrl" // 图片上传服务器地址
list-type="picture-card"
name="file"
:file-list="fileList" // 图片被添加的集合数组
:class="{hideUpload: hide}" // 超过现在次数或者张数,隐藏+,页面不让继续添加图片,默认false
:limit="1" // 限制次数
:before-upload = 'beforeAvatarUpload' //上传前回调
:on-success="handleAvatarSuccess" // 成功回调
:on-preview="handlePictureCardPreview" // 预览回调
:on-remove="handleRemove"> // 删除回调
<i class="el-icon-plus"></i> // 设计添加背景图标
</el-upload>
<el-dialog :visible.sync="dialogVisible">         // 主要用作预览大图
<img width="100%" :src="dialogImageUrl" >
</el-dialog>
<div class="tips">                      // 上传之前限制格式提示 beforeAvatarUpload
<p>1.建议尺寸(360*240)</p>
<p>2.格式为jpg或png</p>
<p>3.且不能大于2M</p>
</div>

看一下官方的 name解释:

1. 与后台Swgg 的对应:(坑一)

它的错误也看下: MissingServletRequestPartException: Required request part 'file' is not present

2. 我们在来看下他的请求头错误,参数少穿或者传错的情况:(坑二)

它的错误也看下:Error in v-on handler: "TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': Value is not a valid ByteString."

found in    (请求参数不是有效的值)

3. url 错误的拼接:(坑三)

查看错误: 单独baseUrl.js 没有export 出去,或者单独引入时没有加{}

import { base } from '../../api/baseUrl.js'

4. 图片没有回显? (坑四)

 // 上传成功的钩子
handleAvatarSuccess(res, file, fileList) {
// res 成功返回值,file 传的值包含res 和fileList
console.log(res)
let that = this;
that.fileList.push({
name: res.data.name,
url: res.data.path // 没有回显的原因是没有后台没有正确返回path完整的路径。
})
if(fileList.length === 1){
that.hide = true; // 隐藏添加按钮
}
},

5. 预览功能没有图片?或者最上层有遮罩层?(坑五)

 // 预览大图
handlePictureCardPreview(file,fileList) {
console.log(file)
console.log(fileList)
this.dialogImageUrl = file.url; (不是后台返回的path路径)
this.dialogVisible = true;
}, 有遮罩层的问题暂未解决,如果有知道的,请告知一下,谢谢。

6. 删除功能:(这个不会有什么错误,把fileList 重新赋值一下就可以了。)

// 删除一张封面的方法
handleRemove(file, fileList) {
console.log(file, fileList);
this.hide = false;
this.fileList = fileList
},

7. 限制图片大小:(这个也应该不会有什么问题)

beforeAvatarUpload(file) {
console.log(file)
// const isJPG = file.type === 'image/jpeg';
const isLt2M = file.size / 1024 / 1024 < 2; // 需要注意的 // if (!isJPG) {
// this.$message.error('上传图片只能是 JPG 格式!');
// }
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 2MB!');
}
return isLt2M;
},

css:

/*上传图片的*/
.hideUpload .el-upload--picture-card {
display: none;
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}

至此所以可能遇到的问题都总结下来了,再也不用怕上传图片了。有些朋友会问;原生上传图片会不会很难,我的回答是不难,样式没有eleUi好看,而且没有做预览功能,但可以解决那个遮罩层的问题,详情请翻看我之前的博客。

那些年踩过的eleUl上传图片的坑?的更多相关文章

  1. Android Toast cancel和show 不踩中不会知道的坑

    说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景: 1.连续点击一个按钮,每次都产生一个新的Toast并且调用show方法 问题:触发了toast以后,toast内容会一直 ...

  2. 曾经的pc端项目踩到的一些兼容性的坑及其解决方案

    曾经公司pc端项目一直最低兼容到IE7,要求和chrome下浏览效果一致,真心坑坏了我和另外一个小伙伴(另一个小伙伴以前也没处理过兼容问题).不过还好,在这里真心感谢鑫哥博客的详解,从底层原理讲到了具 ...

  3. 云计算之路-阿里云上:踩着RDS的2个坑

    最近发现阿里云RDS管理控制台升级了,界面更好看了,操作也更方便了,但在美丽的外表下却藏着坑,不小心被我们睬着了. 8月31日下午,我们在RDS管理控制台中创建了一个新的数据库帐号,创建时选择了绑定多 ...

  4. 踩了个DNS解析的坑,但我还是没想通

    hello大家好,我是小楼. 最近踩了个DNS解析的小坑,虽然问题解决了,但排查过程比较曲折,最后还是有一点没有想通,整个过程分享给大家. 背景 最近负责的服务要置换机器.置换机器可能很多小伙伴不知道 ...

  5. 踩一踩微信小程序开发的坑---tabBar

    最近忙于开发视频直播的项目,小程序学习也放置了两三个星期了,web开发者工具更新到新版,发现上个版本做的demo不显示了

  6. 附1 踩过的jedis的一些坑

    1.java.lang.Long to java.lang.B]类型转换异常 解决方案:归还资源部分,使用jedis.close() 2.jedis数组越界异常 解决方案:版本太低,升到2.8.0

  7. 花一天时间踩了node npm的一个坑

    在一个后端眼里nodejs这工具真的难用,最近为了用elementui,然后去硬着头皮学vue,学着学着,发现还要去用node,webpack.真想掐死前端那一群人啊.... 好了,进入正题.话说我装 ...

  8. C语言必踩神坑,世上本没有坑,摔的人多了,也就有了坑!

    这是一个伤心的故事,有多少小伙伴在写C语言代码时遇到过的情景! 提问:C语言中,未初始化的局部变量到底是多少? 答案往往是: 与编译器有关: 可能但不保证初始化为0: 未确定. 总之,全部都是些一本正 ...

  9. IE9下WebUploader上传图片跨域问题

    作为前端,这一次踩到后台xml配置的坑. IE9下上传图片通过flash插件,一直发送http://192.168.0.8:8888/crossdomain.xml请求,状态码为404,原因是上传图片 ...

随机推荐

  1. thinkphp中的exp查询

    今天遇到一个问题,就是在vendor表中查询出vendor_id = vendor_f_id的数据,其实使用原生的sql语句是非常简单的: select * from vendor where ven ...

  2. FTP上传下载文件(函数简易版)

    FTP上传下载文件(函数简易版) # 服务端 import socket import json import hashlib import struct import os user_dic = { ...

  3. Using-JSONNET-for-dynamic-JSON-parsing

    原文 https://weblog.west-wind.com/posts/2012/Aug/30/Using-JSONNET-for-dynamic-JSON-parsing With the re ...

  4. java树的遍历

    java二叉树的遍历算法: http://blog.sina.com.cn/s/blog_70600f720100ujnp.html

  5. 选择 NoSQL 需要考虑的 10 个问题

    那么我为什么要写这篇文章呢? 是因为我认为NoSQL解决方案不如RDBMS解决方案吗?当然不! 是因为我专注于SQL的做事方式,而不想陷入一种相对较新的技术的不确定性吗?不,也不是!事实上,我非常兴奋 ...

  6. 对php引用的理解

    /** * 引用是符号表别名 */ // $a与$b指向同一个变量 $a = &$b; // 定义函数foo,参数为引用类型:&$var,无函数体 function foo(& ...

  7. ios开发之UIView和UIViewController

    UIView 表示屏幕上的一块矩形区域,负责渲染区域的内容,并且响应该区域内发生的触摸事件.它在 iOS App 中占有绝对重要的地位,因为 iOS 中几乎所有可视化控件都是 UIView 的子类. ...

  8. java.nio.Buffer 中的 flip()方法

    在Java NIO编程中,对缓冲区操作常常需要使用  java.nio.Buffer中的 flip()方法. Buffer 中的 flip() 方法涉及到 Buffer 中的capacity.posi ...

  9. Java 枚举(enum)详解

    概念: Java1.5发行版本中增加了新的引用类型--枚举类型(enum type).枚举类型是指由一组固定的常量组成合法值的类型.在Java虚拟机中,枚举类在进行编译时会转变成普通的Java类. 创 ...

  10. Sublime Text 3 - there are no packages available for installation 解决方法

    解决方法: 1. 下载一个channel_v3.json ,  提取码: n2vc 2. 进入以下路径的设置界面 3. 添加代码 , 文件路径以各自下载保存路径为准 ( 重启sublime, 搞定 ! ...