我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue上传图片文件的多种实现方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue上传图片文件的多种实现方法

最开始百度到各种加headers,最后发现没什么用,有大兄弟知道的可以告知一下哦,记个随笔

原始input标签form表单上传


<input type="file" @change="onchangemd">

methods: {
 	onchangemd(e){
		console.log(e.target.files)//这个就是选中文件信息
		let formdata = new FormData()
		Array.from(e.target.files).map(item => {
         console.log(item)
         formdata.append("file", item)  //将每一个文件图片都加进formdata
       })
       axios.post("接口地址", formdata).then(res => { console.log(res) })
	}
 }

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


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

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

用elementui自带的el-upload上传


<el-upload action="" :on-change="handleelchange"  :auto-upload="false" list-type="picture-card">
     <i class="el-icon-plus"></i>
</el-upload>

 handleelchange(file, fileList) {
      console.log(file, fileList)
      let formdata = new FormData()
      fileList.map(item => { //fileList本来就是数组,就不用转为真数组了
        formdata.append("file", item.raw)  //将每一个文件图片都加进formdata
      })
       axios.post("接口地址", formdata).then(res => { console.log(res) })
    },

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

注意fileList数组中的raw才是真实文件数据,如果直接用item而不是item.raw,那么会报500错误,并且formdata中的数据不是二进制而是对象格式


fileList.map(item => {
formdata.append(“file”, item) //错误实例。要用item.raw
})


 elementui

elementui实现一次性上传多张图片

注意: 管用思维,点击提交然后触发表单提交事件,然后表单提交事件中发起请求。

结果: 上传每张图片都需要发起请求,即会发起多次请求

处理: 在submit阶段(即this.$refs.xxx.submit() 这步就发起请求),在提交函数中仅仅只进行图片获取

多张图片上传最后一个注意点: 多张图片的这个file不能写死,formdata.append(“file”, item) ,写为每张图片的指定name,不然会覆盖。


<el-upload ref="elupload" action="" multiple :auto-upload="false" :http-request="handleupload"  list-type="picture-card">
	<i class="el-icon-plus"></i>
</el-upload>
<button @click="uploadelupload">点击提交</button>

methods:{
	uploadelupload() {
      let formdata = new FormData()
      this.$refs.elupload.submit(); // 这里是执行文件上传的函数,其实也就是获取我们要上传的文件  
      this.fileList.forEach(item => {
        formdata.append("file", item)  //将每一个文件图片都加进formdata
      })
      formdata.append("score", 4)
      axios.post("接口地址", formdata).then(res => { console.log(res) })
    },
    handleupload(param) {
      this.fileList.push(param.file);// 一般情况下是在这里创建FormData对象,但我们需要上传多个文件,为避免发送多次请求,因此在这里只进行文件的获取,param可以拿到文件上传的所有信息
    },
}

elementui提交图片以及其他数据

  • 后端让传图片、以及其他数据。
  • 注意图片文件等:必须使用formdata传过去
  • 其他数据等:用普通方式传递

代码与上述大体相同、这里就只写axios请求格式
let formdata = new FormData()
formdata.append("file", item)  //将每一个文件图片都
axios({
	method: "post",
 	url: "接口地址",
	data: formdata,
 	params: { score: 4, content: "xxxxx", order_detail_id: 24, token: "xxxx" }
}).then(res => { console.log(res) })

总结

到此这篇关于vue上传图片文件的文章就介绍到这了,更多相关vue上传图片文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue上传图片文件的多种实现方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue如何实现上传图片文件

这篇文章给大家分享的是有关vue如何实现上传图片文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。原始input标签form表单上传
2023-06-15

Android Retrofit实现多图片/文件、图文上传功能

什么是 Retrofit Retrofit是Square开发的一个Android和Java的REST客户端库。这个库非常简单并且具有很多特性,相比其他的网络库,更容易让初学者快速掌握。它可以处理GET、POST、PUT、DELETE…等请
2022-06-06

vue如何实现上传图片组件

这篇文章给大家分享的是有关vue如何实现上传图片组件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。未上传状态上传状态其他状态(查看/删除)自定义组件文件名称 - 这里叫UploadImg.vue
2023-06-25

jsp 实现上传文件的两种方法

在用Java开发企业器系统的使用,特别是涉及到与办公相关的软件开发的时候,文件的上传是客户经常要提到的要求.因此有 一套很好文件上传的解决办法也能方便大家在这一块的开发.........[@more@]在用Java开发企业器系统的使用,特别
2023-06-03

vue 文件切片上传的项目实现

本文主要介绍了vue 文件切片上传的项目实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-24

vue如何实现文件切片上传

这篇文章主要介绍了vue如何实现文件切片上传的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何实现文件切片上传文章都会有所收获,下面我们一起来看看吧。在实际开发项目过程中有时候需要上传比较大的文件,然后呢
2023-07-05

uniapp上传图片和上传视频的实现方法

这篇文章主要给大家介绍了关于uniapp上传图片和上传视频的实现方法,文中还介绍了上传文件的方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-17

vue文件切片上传的项目怎么实现

这篇文章主要介绍“vue文件切片上传的项目怎么实现”,在日常操作中,相信很多人在vue文件切片上传的项目怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue文件切片上传的项目怎么实现”的疑惑有所帮助!
2023-07-05

浅析vue怎么实现文件切片上传

在实际开发项目过程中有时候需要上传比较大的文件,然后呢,上传的时候相对来说就会慢一些,so,后台可能会要求前端进行文件切片上传,很简单哈,就是把比如说1个G的文件流切割成若干个小的文件流,然后分别请求接口传递这个小的文件流。
2023-05-14

vue-cropper组件如何实现图片切割上传

小编给大家分享一下vue-cropper组件如何实现图片切割上传,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vue-cropper在vue中的引入1、组件内引入
2023-06-15

PHP多文件上传实现格式化的方法

这篇文章主要介绍PHP多文件上传实现格式化的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:
2023-06-15

Vue在大文件上传和断点续传的实现方法

本篇内容主要讲解“Vue在大文件上传和断点续传的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue在大文件上传和断点续传的实现方法”吧!文件上传的 2 套方案基于文件流(form-da
2023-06-20

编程热搜

目录