国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue 使用formData方式向后臺發(fā)送數(shù)據(jù)的實現(xiàn)

2024-05-06 15:40:41
字體:
供稿:網(wǎng)友

很多時候在使用form向后臺發(fā)送數(shù)據(jù)的時候,并不需要使用到表單組件。

例如時間戳、ip等,這個時候除了ajax之外,還可以使用HTML5的一個全新方法FormData;在input[type = file]的文件類型中,很多時候想要把一張圖片或者是使用canvas繪制好的圖像傳送到后臺時,無法賦值給file文件,只能轉(zhuǎn)換為base64類型傳送到后臺,然后由后臺轉(zhuǎn)換為圖片再進行服務(wù)器存儲;此過程較為復(fù)雜;

使用formdata,只需創(chuàng)建新的formdata對象,將要發(fā)送的數(shù)據(jù)添加進去,后臺即可接收;數(shù)據(jù)以及文件對象皆可;

1. 基本使用方式

template

<input class="file" name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update"/>

JavaScript

update (e) {  let file = e.target.files[0]  // console.log(file)  let param = new FormData() // 創(chuàng)建form對象  param.append('file', file, file.name) // 通過append向form對象添加數(shù)據(jù)  param.append('id', this.$store.state.userId) // 添加form表單中其他數(shù)據(jù)   // withCredentials: true 使得后臺可以接收表單數(shù)據(jù) 跨域請求  const instance = axios.create({    withCredentials: true  })  // url為后臺接口  instance.post('url', param)    .then(this.succ) // 成功返回信息 調(diào)用函數(shù) 函數(shù)需自己定義,此處后面省略    .catch(this.serverError) // 服務(wù)器錯誤 調(diào)用對應(yīng)函數(shù) 函數(shù)需自己定義,此處后面省略}

2. 美化 input file 按鈕 (拓展)

思路:

    簡單粗暴地隱藏:opacity: 0; 在 <input class="file"> 元素節(jié)點的位置上創(chuàng)建一個好看的元素節(jié)點,比如img 將 <input class="file"> 元素的z軸變高,使得其覆蓋<img/> :z-index: 5; 因為 <input class="file"> 是透明的,那么我們就只看見它同xy上的好看的<img /> 點擊這個好看的<img /> 其實是點擊了它上層的表單

以上思路可以實現(xiàn)點擊用戶頭像,通過表單上傳更換頭像,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持錯新站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 寻甸| 太白县| 尚义县| 大方县| 客服| 洪雅县| 日照市| 运城市| 平武县| 克拉玛依市| 甘谷县| 灵璧县| 德格县| 安福县| 天祝| 海兴县| 广饶县| 鲁山县| 三原县| 常山县| 龙海市| 玛纳斯县| 重庆市| 三门峡市| 富裕县| 蕉岭县| 六盘水市| 广西| 威宁| 凤山市| 临夏市| 汉源县| 习水县| 常熟市| 鲜城| 府谷县| 沁水县| 新宁县| 镇坪县| 白玉县| 怀集县|