91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue 使用formData方式向后臺發送數據的實現

發布時間:2020-09-25 14:33:58 來源:腳本之家 閱讀:292 作者:邢走在云端 欄目:web開發

很多時候在使用form向后臺發送數據的時候,并不需要使用到表單組件。

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

使用formdata,只需創建新的formdata對象,將要發送的數據添加進去,后臺即可接收;數據以及文件對象皆可;

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() // 創建form對象
  param.append('file', file, file.name) // 通過append向form對象添加數據
  param.append('id', this.$store.state.userId) // 添加form表單中其他數據
   // withCredentials: true 使得后臺可以接收表單數據 跨域請求
  const instance = axios.create({
    withCredentials: true
  })
  // url為后臺接口
  instance.post('url', param)
    .then(this.succ) // 成功返回信息 調用函數 函數需自己定義,此處后面省略
    .catch(this.serverError) // 服務器錯誤 調用對應函數 函數需自己定義,此處后面省略
}

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

思路:

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

以上思路可以實現點擊用戶頭像,通過表單上傳更換頭像,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴南区| 许昌县| 香河县| 凌云县| 宜宾市| 白河县| 桓台县| 黑山县| 纳雍县| 梅河口市| 怀集县| 托克托县| 高青县| 东平县| 新津县| 榕江县| 克拉玛依市| 阿鲁科尔沁旗| 得荣县| 永兴县| 南岸区| 通江县| 水城县| 天柱县| 监利县| 昌邑市| 武城县| 克什克腾旗| 晋城| 五指山市| 冷水江市| 乡宁县| 大关县| 辽源市| 望谟县| 余姚市| 永川市| 彰化市| 依安县| 衡东县| 万源市|