最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue上傳圖片文件的多種實(shí)現(xiàn)方法

 更新時(shí)間:2021年05月14日 10:40:44   作者:嘿起屁兒整  
這篇文章主要給大家介紹了關(guān)于vue上傳圖片文件的相關(guān)資料,介紹了利用原始input標(biāo)簽form表單上傳、elementui自帶的el-upload上傳以及elementui實(shí)現(xiàn)一次性上傳多張圖片等方法,需要的朋友可以參考下

最開始百度到各種加headers,最后發(fā)現(xiàn)沒什么用,有大兄弟知道的可以告知一下哦,記個(gè)隨筆

原始input標(biāo)簽form表單上傳

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

methods: {
 	onchangemd(e){
		console.log(e.target.files)//這個(gè)就是選中文件信息
		let formdata = new FormData()
		Array.from(e.target.files).map(item => {
         console.log(item)
         formdata.append("file", item)  //將每一個(gè)文件圖片都加進(jìn)formdata
       })
       axios.post("接口地址", formdata).then(res => { console.log(res) })
	}
 }

當(dāng)看到二進(jìn)制提交數(shù)據(jù),就成功了(binary)


這種也是成功的(是二進(jìn)制的展開數(shù)據(jù)。因?yàn)橛行g覽器不顯示binary)

上圖可以看出 傳統(tǒng)上傳文件是以二進(jìn)制的格式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本來就是數(shù)組,就不用轉(zhuǎn)為真數(shù)組了
        formdata.append("file", item.raw)  //將每一個(gè)文件圖片都加進(jìn)formdata
      })
       axios.post("接口地址", formdata).then(res => { console.log(res) })
    },

不用設(shè)置請(qǐng)求頭等(直接用FormData格式提交就行),當(dāng)看到formdata數(shù)據(jù)為二進(jìn)制就說明提交正常(binary),同樣有些瀏覽器不顯示binary,以------WebKitFormBoundaryXoZpi2juymcNoW0l 開頭的這種也是提交正常的

注意fileList數(shù)組中的raw才是真實(shí)文件數(shù)據(jù),如果直接用item而不是item.raw,那么會(huì)報(bào)500錯(cuò)誤,并且formdata中的數(shù)據(jù)不是二進(jìn)制而是對(duì)象格式

fileList.map(item => {
formdata.append(“file”, item) //錯(cuò)誤實(shí)例。要用item.raw
})


 elementui

elementui實(shí)現(xiàn)一次性上傳多張圖片

注意: 管用思維,點(diǎn)擊提交然后觸發(fā)表單提交事件,然后表單提交事件中發(fā)起請(qǐng)求。

結(jié)果: 上傳每張圖片都需要發(fā)起請(qǐng)求,即會(huì)發(fā)起多次請(qǐng)求

處理: 在submit階段(即this.$refs.xxx.submit() 這步就發(fā)起請(qǐng)求),在提交函數(shù)中僅僅只進(jìn)行圖片獲取

多張圖片上傳最后一個(gè)注意點(diǎn): 多張圖片的這個(gè)file不能寫死,formdata.append(“file”, item) ,寫為每張圖片的指定name,不然會(huì)覆蓋。

<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">點(diǎn)擊提交</button>

methods:{
	uploadelupload() {
      let formdata = new FormData()
      this.$refs.elupload.submit(); // 這里是執(zhí)行文件上傳的函數(shù),其實(shí)也就是獲取我們要上傳的文件  
      this.fileList.forEach(item => {
        formdata.append("file", item)  //將每一個(gè)文件圖片都加進(jìn)formdata
      })
      formdata.append("score", 4)
      axios.post("接口地址", formdata).then(res => { console.log(res) })
    },
    handleupload(param) {
      this.fileList.push(param.file);// 一般情況下是在這里創(chuàng)建FormData對(duì)象,但我們需要上傳多個(gè)文件,為避免發(fā)送多次請(qǐng)求,因此在這里只進(jìn)行文件的獲取,param可以拿到文件上傳的所有信息
    },
}

elementui提交圖片以及其他數(shù)據(jù)

  • 后端讓傳圖片、以及其他數(shù)據(jù)。
  • 注意圖片文件等:必須使用formdata傳過去
  • 其他數(shù)據(jù)等:用普通方式傳遞
代碼與上述大體相同、這里就只寫axios請(qǐng)求格式
let formdata = new FormData()
formdata.append("file", item)  //將每一個(gè)文件圖片都
axios({
	method: "post",
 	url: "接口地址",
	data: formdata,
 	params: { score: 4, content: "xxxxx", order_detail_id: 24, token: "xxxx" }
}).then(res => { console.log(res) })

總結(jié)

到此這篇關(guān)于vue上傳圖片文件的文章就介紹到這了,更多相關(guān)vue上傳圖片文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于單文件組件.vue的使用

    關(guān)于單文件組件.vue的使用

    這篇文章主要介紹了關(guān)于單文件組件.vue的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue實(shí)現(xiàn)購物車列表

    vue實(shí)現(xiàn)購物車列表

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)購物車列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 講解vue-router之什么是動(dòng)態(tài)路由

    講解vue-router之什么是動(dòng)態(tài)路由

    這篇文章主要介紹了講解vue-router之什么是動(dòng)態(tài)路由,詳細(xì)的介紹了什么是動(dòng)態(tài)路由,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue3中如何使用codemirror6增加代碼提示功能

    vue3中如何使用codemirror6增加代碼提示功能

    這篇文章主要給大家介紹了關(guān)于vue3中如何使用codemirror6增加代碼提示功能的相關(guān)資料,Codemirror是一個(gè)不錯(cuò)的Web代碼編輯庫,可以方便簡(jiǎn)單的集成,需要的朋友可以參考下
    2023-08-08
  • 詳解Vue如何實(shí)現(xiàn)字母驗(yàn)證碼

    詳解Vue如何實(shí)現(xiàn)字母驗(yàn)證碼

    這篇文章主要為大家介紹了Vue如何實(shí)現(xiàn)字母驗(yàn)證碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • vue?perfect-scrollbar(特定框架里使用非該框架定制庫/插件)

    vue?perfect-scrollbar(特定框架里使用非該框架定制庫/插件)

    這篇文章主要為大家介紹了vue?perfect-scrollbar在特定框架里使用一款并非為該框架定制的庫/插件如何實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-05-05
  • Vue3中使用echarts的簡(jiǎn)單七個(gè)步驟(易懂,附緊急避坑)

    Vue3中使用echarts的簡(jiǎn)單七個(gè)步驟(易懂,附緊急避坑)

    近期在做一個(gè)vue3的項(xiàng)目,里面有個(gè)圖表需求,因公司之前使用第三方封裝的圖表缺少文檔,就去看了echars的官網(wǎng)文檔,引入原生echars來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Vue3中使用echarts的簡(jiǎn)單七個(gè)步驟,需要的朋友可以參考下
    2023-01-01
  • 在Vue3中實(shí)現(xiàn)拖拽文件上傳功能的過程詳解

    在Vue3中實(shí)現(xiàn)拖拽文件上傳功能的過程詳解

    文件上傳是我們?cè)陂_發(fā)Web應(yīng)用時(shí)經(jīng)常遇到的功能之一,為了提升用戶體驗(yàn),我們可以利用HTML5的拖放API來實(shí)現(xiàn)拖拽文件上傳的功能,本文將介紹如何在Vue3中實(shí)現(xiàn)這一功能,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • Vue實(shí)現(xiàn)半自動(dòng)打字機(jī)特效

    Vue實(shí)現(xiàn)半自動(dòng)打字機(jī)特效

    本文主要介紹了Vue實(shí)現(xiàn)半自動(dòng)打字機(jī)特效,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • vue異步更新dom的實(shí)現(xiàn)淺析

    vue異步更新dom的實(shí)現(xiàn)淺析

    Vue中的數(shù)據(jù)更新是異步的,意味著我們?cè)谛薷耐闐ata之后并不能立刻獲取修改后的DOM元素。本文介紹了vue異步更新dom的實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論

英吉沙县| 平利县| 馆陶县| 大安市| 金山区| 高平市| 格尔木市| 长寿区| 曲松县| 常德市| 新营市| 康保县| 鲁甸县| 鸡东县| 嘉定区| 德庆县| 龙岩市| 台山市| 武邑县| 内乡县| 阜新| 太保市| 万宁市| 麻城市| 凤冈县| 新乡县| 徐闻县| 奇台县| 土默特右旗| 中宁县| 越西县| 刚察县| 方山县| 济宁市| 木兰县| 那曲县| 海宁市| 咸丰县| 峨眉山市| 云林县| 芦山县|