图片上传

超级简单的文件上传,详细的讲解视频

普通用法

附件上传 - 图1

提供了dataType参数可以去配置存到数据库的结构体类型,可以配置canvasOption属性去生成水印和压缩图片,也可配propspropsHttp属性去加载不用的结构体中的keyvalue,具体参数配置参考下面demo和文档

  1. <avue-form :option="option" v-model="form" :upload-before="uploadBefore" :upload-after="uploadAfter"> </avue-form>
  2. <script>
  3. export default{
  4. data() {
  5. return {
  6. form: {
  7. imgUrl:[{ "label": "avue@226d5c1a_logo.png", "value": "http://avue.oss-cn-beijing.aliyuncs.com/1_1.png" }],
  8. imgUrl3:'http://avue.oss-cn-beijing.aliyuncs.com/1_1.png',
  9. string:'http://avue.oss-cn-beijing.aliyuncs.com/1_1.png,http://avue.oss-cn-beijing.aliyuncs.com/1_1.png',
  10. img:['http://avue.oss-cn-beijing.aliyuncs.com/1_1.png','http://avue.oss-cn-beijing.aliyuncs.com/1_1.png']
  11. },
  12. option: {
  13. labelWidth: 120,
  14. column: [
  15. {
  16. label: '附件上传',
  17. prop: 'imgUrl',
  18. type: 'upload',
  19. loadText: '附件上传中,请稍等',
  20. span: 24,
  21. propsHttp: {
  22. res: 'data.0'
  23. },
  24. tip: '只能上传jpg/png文件,且不超过500kb',
  25. action: 'https://avueupload.91eic.com/upload/list'
  26. },
  27. {
  28. label: '水印头像',
  29. prop: 'imgUrl3',
  30. type: 'upload',
  31. listType: 'picture-img',
  32. span: 24,
  33. propsHttp: {
  34. res: 'data.0'
  35. },
  36. canvasOption: {
  37. text: 'avue',
  38. ratio: 0.1
  39. },
  40. tip: '只能上传jpg/png用户头像,且不超过500kb',
  41. action: 'https://avueupload.91eic.com/upload/list'
  42. },
  43. {
  44. label: '照片墙',
  45. prop: 'imgUrl',
  46. type: 'upload',
  47. span: 24,
  48. listType: 'picture-card',
  49. tip: '只能上传jpg/png文件,且不超过500kb',
  50. propsHttp: {
  51. res: 'data.0'
  52. },
  53. action: 'https://avueupload.91eic.com/upload/list'
  54. },
  55. {
  56. label: '数组图片组',
  57. prop: 'img',
  58. dataType: 'array',
  59. type: 'upload',
  60. propsHttp: {
  61. res: 'data.0'
  62. },
  63. span: 24,
  64. listType: 'picture-card',
  65. tip: '只能上传jpg/png文件,且不超过500kb',
  66. action: 'https://avueupload.91eic.com/upload/list'
  67. },
  68. {
  69. label: '字符串图片组',
  70. prop: 'string',
  71. dataType: 'string',
  72. type: 'upload',
  73. propsHttp: {
  74. res: 'data.0'
  75. },
  76. span: 24,
  77. listType: 'picture-card',
  78. tip: '只能上传jpg/png文件,且不超过500kb',
  79. action: 'https://avueupload.91eic.com/upload/list'
  80. },
  81. {
  82. label: '拖拽上传',
  83. prop: 'imgUrl',
  84. type: 'upload',
  85. span: 24,
  86. drag: true,
  87. propsHttp: {
  88. res: 'data.0'
  89. },
  90. tip: '只能上传jpg/png文件,且不超过500kb',
  91. action: 'https://avueupload.91eic.com/upload/list'
  92. },
  93. {
  94. label: '缩略图上传',
  95. prop: 'imgUrl',
  96. type: 'upload',
  97. limit: 3,
  98. span: 24,
  99. propsHttp: {
  100. res: 'data.0'
  101. },
  102. listType: 'picture',
  103. tip: '只能上传jpg/png文件,且不超过500kb',
  104. action: 'https://avueupload.91eic.com/upload/list'
  105. }
  106. ]
  107. }
  108. }
  109. },
  110. methods: {
  111. uploadBefore(file, done, loading) {
  112. console.log(file)
  113. done()
  114. this.$message.success('上传前的方法')
  115. },
  116. uploadAfter(res, done, loading) {
  117. console.log(res)
  118. done()
  119. this.$message.success('上传后的方法')
  120. },
  121. submit() {
  122. this.$message.success('当前数据' + JSON.stringify(this.form))
  123. }
  124. }
  125. }
  126. </script>

Variables

参数说明类型可选值默认值
upload-before图片上传前的回调,会暂停图片上传function(file,done),done用于继续图片上传,loading用于中断操作Function
upload-after图片上传后的回调,function(res,done),done用于结束操作,loading用于中断操作Function

props Attributes

如果dataType为arrat和string时,不存在该参数的设置

参数说明类型可选值默认值
label数据对象的图片地址Stringlabel
value数据对象的图片名称Stringvalue

propsHttp Attributes

如果dataType为arrat和string时,不存在name字段的配置

参数说明类型可选值默认值
url上传成功返回结构体的图片地址Stringurl
name上传成功返回结构体的图片的姓名Stringname
res返回结构体的层次,例如返回(data:{url:'',name:''}),则res配置为dataString-

canvasOption Attributes

参数说明类型可选值默认值
text字体的文字Stringavue.top
fontFamily字体类型Stringmicrosoft yahei
color字体的颜色String#999
fontSize字体的大小String16
opacity文字的透明度String100
bottom文字距离图片底部的距离String10
right文字距离图片右边的距离String10
ratio压缩图片比率String0-1(可以是小数)1