vue如何实现上传图片文件

  介绍

这篇文章给大家分享的是有关vue如何实现上传图片文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

原始输入标签形式表单上传

& lt; input 类型=癴ile", @change=皁nchangemd"比;      方法:,{   ,onchangemd (e) {   console.log (e.target.files)//这个就是选中文件信息   let  formdata =, new  FormData ()   Array.from (e.target.files) . map (item =祝辞,{   ,,,,,,,,console.log(项)   ,,,,,,,,formdata.append (“file",,项),,//将每一个文件图片都加进formdata   ,,,,,,})   ,,,,,,axios.post(“接口地址“,,formdata),然后(res =祝辞,{,console.log (res),})   }   以前,}

当看到二进制提交数据,就成功了(二进制)

 vue如何实现上传图片文件“> <br/> <img src=

这种也是成功的(是二进制的展开数据。因为有些浏览器不显示二进制)

 vue如何实现上传图片文件

<强>上图可以看出传统上传文件是以二进制的格式formdata格式提交

用elementui自带的el-upload上传

& lt; el-upload  action=啊?:变化=癶andleelchange",,: auto-upload=癴alse",列表类型=皃icture-card"比;   ,,,,& lt;小姐:类=癳l-icon-plus"祝辞& lt;/i>   & lt;/el-upload>      ,handleelchange(文件,文件列表),{   ,,,,,console.log(文件,文件列表)   ,,,,,let  formdata =, new  FormData ()   ,,,,,fileList.map (item =祝辞,{,//文件列表本来就是数组,就不用转为真数组了   ,,,,,,,formdata.append (“file",, item.raw),,//将每一个文件图片都加进formdata   ,,,,,})   ,,,,,,axios.post(“接口地址“,,formdata),然后(res =祝辞,{,console.log (res),})   ,,,},

不用设置请求头等(直接用FormData格式提交就行),当看到FormData数据为二进制就说明提交正常(二进制),同样有些浏览器不显示二进制,以- - - - - - WebKitFormBoundaryXoZpi2juymcNoW0l开头的这种也是提交正常的

 vue如何实现上传图片文件

注意文件列表数组中生的才是真实文件数据,如果直接用物品而不是项。生,那么会报500错误,并且formdata中的数据不是二进制而是对象格式

fileList.map (item =祝辞,{   formdata.append(“文件”,项),//错误实例。要用item.raw   })

 vue如何实现上传图片文件”>,elementui </p> <h4> elementui实现一次性上传多张图片</h4> <p>注意:管用思维,点击提交然后触发表单提交事件,然后表单提交事件中发起请求。</p> <p>结果:上传每张图片都需要发起请求,即会发起多次请求</p> <p>处理:在提交阶段(即。refs.xxx.submit美元()这步就发起请求),在提交函数中仅仅只进行图片获取</p> <p>多张图片上传最后一个注意点:多张图片的这个文件不能写死,formdata。追加(“文件”项),写为每张图片的指定名称,不然会覆盖。</p> <pre类= & lt; el-upload  ref=癳lupload", action=啊? multiple : auto-upload=癴alse",: http请求=癶andleupload",,列表类型=皃icture-card"比;   & lt;小姐:类=癳l-icon-plus"祝辞& lt;/i>   & lt;/el-upload>   & lt; button  @click=皍ploadelupload"祝辞点击提交& lt;/button>      方法:{   uploadelupload (), {   ,,,,,let  formdata =, new  FormData ()   ,,,,,,美元refs.elupload.submit();,//,这里是执行文件上传的函数,其实也就是获取我们要上传的文件,,   ,,,,,this.fileList.forEach (item =祝辞,{   ,,,,,,,formdata.append (“file",,项),,//将每一个文件图片都加进formdata   ,,,,,})   ,,,,,formdata.append (“score",, 4)   ,,,,,axios.post(“接口地址“,,formdata),然后(res =祝辞,{,console.log (res),})   ,,,},   ,,,handleupload(参数),{   ,,,,,this.fileList.push (param.file);//,一般情况下是在这里创建FormData对象,但我们需要上传多个文件,为避免发送多次请求,因此在这里只进行文件的获取,参数可以拿到文件上传的所有信息   ,,,},   }

elementui提交图片以及其他数据

<李>

vue如何实现上传图片文件