国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3+axios:圖片鏈接轉(zhuǎn)換成二進(jìn)制文件流后并提交服務(wù)器

這篇具有很好參考價(jià)值的文章主要介紹了vue3+axios:圖片鏈接轉(zhuǎn)換成二進(jìn)制文件流后并提交服務(wù)器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、基本思路

1、使用Image類創(chuàng)建一個新的圖片。
2、將圖片轉(zhuǎn)換成base64。
3、將base64圖片使用File類轉(zhuǎn)換成二進(jìn)制文件流
4、將二進(jìn)制文件流使用 FormData類轉(zhuǎn)換成binary類型提交服務(wù)器。

代碼詳解

Image類創(chuàng)建一個新的圖片

    
   	  let imgLink = "圖片Url地址";
      let tempImage = new Image();
      tempImage.src = imgLink;
      //tempImage.crossOrigin = "*";//提交的服務(wù)器是否需要設(shè)置跨域
      //const headers = { 'token': localStorage.getItem('token') };提交的服務(wù)器是否需要登錄信息
      //tempImage.headers = headers;

圖片轉(zhuǎn)換成base64

    const imageToBase64 = (img) => {
      var canvas = document.createElement("canvas");
      canvas.width = img.width;
      canvas.height = img.height;
      var ctx = canvas.getContext("2d");
      ctx.drawImage(img, 0, 0, img.width, img.height);
      var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
      var dataURL = canvas.toDataURL("image/" + ext);
      return dataURL
    }

base64轉(zhuǎn)換成二進(jìn)制文件流

    const base64toFile = (dataurl, filename = 'file') => {
      let arr = dataurl.split(',')
      let mime = arr[0].match(/:(.*?);/)[1]
      let suffix = mime.split('/')[1]
      let bstr = atob(arr[1])
      let n = bstr.length
      let u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      let file = new File([u8arr], `${filename}.${suffix}`, {
        type: mime
      })
      return file
    }

二進(jìn)制流文件提交到服務(wù)器

axios提交文件流,前端,服務(wù)器,javascript,前端文章來源地址http://www.zghlxwxcb.cn/news/detail-612043.html

 	  let imgLink = "圖片Url地址";
      let tempImage = new Image();
      tempImage.src = imgLink;
      tempImage.onload = function () {
        let base64 = getBase64Image(tempImage);
        let file = base64toFile(base64);
        const formData = new FormData();
        formData.append('test', file);//看上圖,我用的是test
        let url = '服務(wù)器地址';
        axios.defaults.headers["Content-Type"] = "multipart/form-data;boundary=" + new Date().getTime();//需要在請求頭中設(shè)置文件格式,以下headers都是設(shè)置的請求頭
        axios.defaults.headers['token'] = localStorage.getItem('token');//登錄時獲得的token信息
        axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
        axios.post(url, formData).then(res => {
          console.log(res.data)//獲得服務(wù)器的返回信息
        }).catch(err => {
          console.log(err)
        })

      }

完整代碼

import axios from "axios";
const getBase64Image = (img) => {
      var canvas = document.createElement("canvas");
      canvas.width = img.width;
      canvas.height = img.height;
      var ctx = canvas.getContext("2d");
      ctx.drawImage(img, 0, 0, img.width, img.height);
      var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
      var dataURL = canvas.toDataURL("image/" + ext);
      return dataURL
    }
const base64toFile = (dataurl, filename = 'file') => {
      let arr = dataurl.split(',')
      let mime = arr[0].match(/:(.*?);/)[1]
      let suffix = mime.split('/')[1]
      let bstr = atob(arr[1])//atob() 方法用于解碼使用 base-64 編碼的字符串,瀏覽器中需要使用這個方法,nodeJS中會提示使用Buffer類來實(shí)現(xiàn)。但是瀏覽器window中沒有這個類,因此這里就使用瀏覽器中有的方法
      let n = bstr.length
      let u8arr = new Uint8Array(n)
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n)
      }
      let file = new File([u8arr], `${filename}.${suffix}`, {
        type: mime
      })
      return file
    }
      let imgLink = "圖片鏈接地址";
      let tempImage = new Image();
      tempImage.src = imgLink;
      tempImage.crossOrigin = "*";
      const headers = { 'token': localStorage.getItem('token') };
      tempImage.headers = headers;
      tempImage.onload = function () {
        let base64 = getBase64Image(tempImage);
        let file = base64toFile(base64);
        const formData = new FormData();
        formData.append('faceFile', file);
        let url = '服務(wù)器地址';
        axios.defaults.headers["Content-Type"] = "multipart/form-data;boundary=" + new Date().getTime();
        axios.defaults.headers['token'] = localStorage.getItem('token');
        axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
        axios.post(url, formData).then(res => {
          console.log(res)
        }).catch(err => {
          console.log(err)
        })

      }

到了這里,關(guān)于vue3+axios:圖片鏈接轉(zhuǎn)換成二進(jìn)制文件流后并提交服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java圖片轉(zhuǎn)二進(jìn)制流_java將文件轉(zhuǎn)化成二進(jìn)制流

    二進(jìn)制流的主要編碼格式是base64碼。可以在網(wǎng)上找一些在線轉(zhuǎn)base64編碼的網(wǎng)站進(jìn)行嘗試轉(zhuǎn)換。 例如:http://imgbase64.duoshitong.com/然后通過前端展現(xiàn)和下載。 前端顯示二進(jìn)制流圖片(src中放置base64碼及二進(jìn)制流) 前端下載二進(jìn)制流文件(herf中放置base64碼及二進(jìn)制流,download后面放

    2024年02月06日
    瀏覽(35)
  • 后端返回二進(jìn)制流,前端處理二進(jìn)制文件流,實(shí)現(xiàn)預(yù)覽圖片以及PDF

    后端返回二進(jìn)制流,前端處理二進(jìn)制文件流,實(shí)現(xiàn)預(yù)覽圖片以及PDF

    1、首先預(yù)覽PDF需要 后端 將響應(yīng)頭 Content-Type 設(shè)置為PDF類型 application/pdf ,不能預(yù)覽,會直接下載 2、 前端 定義接口:并設(shè)置相應(yīng)類型 responseType 為 blob 請求數(shù)據(jù):通過 window.URL.createObjectURL(res) 轉(zhuǎn)成本地預(yù)覽地址, 在通過 window.open() 方法打開轉(zhuǎn)成本地預(yù)覽地址即可預(yù)覽PDF,如下

    2024年02月15日
    瀏覽(38)
  • html 二進(jìn)制 blob 給圖片賦值

    1、html 二進(jìn)制流 (非base64),給圖片賦值 ? ? ? ? ? ? var reader = new FileReader(); ? ? ? ? ? ? reader.onload = function (e) { ? ? ? ? ? ? ? var img = document.querySelector(\\\'#canvas_img\\\'); ? ? ? ? ? ? ? img.src = e.target.result; ? ? ? ? ? ? }; ? ? ? ? ? ? // data 二進(jìn)流 ? ? ? ? ? ? reader.readAs

    2023年04月21日
    瀏覽(27)
  • Base64轉(zhuǎn)二進(jìn)制文件流以及轉(zhuǎn)File、圖片轉(zhuǎn)Base64、二進(jìn)制流轉(zhuǎn)Base64

    1、Base64轉(zhuǎn)二進(jìn)制文件流 方法一: 調(diào)用示例: 方法二: 調(diào)用示例: ?2、Base64轉(zhuǎn)File 方法一: 調(diào)用示例: 方法二: 調(diào)用示例: 補(bǔ)充: 3、圖片轉(zhuǎn)Base64 調(diào)用示例: 4、二進(jìn)制流轉(zhuǎn)Base64 方法一: 調(diào)用示例: 方法二: 調(diào)用示例: 5、補(bǔ)充 5.1?atob() atob() ?對經(jīng)過 base-64 編碼的字符

    2024年02月04日
    瀏覽(95)
  • 主從版本升級_主從_8.0.32_軟鏈接_基于二進(jìn)制日志文件

    將一套MySQL 8.0.32主從環(huán)境版本升級到8.0.35版本,主從環(huán)境如下: 主服務(wù)器 登錄賬號密碼 端口 當(dāng)前版本 目標(biāo)版本 主服務(wù)器 59.217.250.226 root/topnet@123 3306 8.0.32 8.0.35 從服務(wù)器 59.217.250.227 root/topnet@123 3306 8.0.32 8.0.35 關(guān)鍵步驟如下: 1.斷開應(yīng)用 2.確定主從無延時 3.關(guān)閉主庫 4.關(guān)閉從

    2024年01月24日
    瀏覽(18)
  • 微信小程序獲取后臺返回的二進(jìn)制圖片

    獲取后臺返回的二進(jìn)制圖片需要先使用wx.request方法發(fā)起網(wǎng)絡(luò)請求獲取圖片數(shù)據(jù),然后將返回的數(shù)據(jù)用wx.arrayBufferToBase64方法進(jìn)行轉(zhuǎn)換,最后將轉(zhuǎn)換后的數(shù)據(jù)綁定到圖片的src屬性即可。 參考代碼如下 其中,url為后臺返回的圖片地址,responseType為返回的數(shù)據(jù)類型為二進(jìn)制數(shù)組。在

    2024年02月10日
    瀏覽(93)
  • Java 中圖片與二進(jìn)制之間如何相互轉(zhuǎn)換?

    1、?下面是一個完整的代碼示例。 指定文件路徑轉(zhuǎn)為二進(jìn)制 將網(wǎng)絡(luò)圖片轉(zhuǎn)為二進(jìn)制 base64 轉(zhuǎn)為圖片資源 2、如何判斷 base64 圖片的格式? 3、將網(wǎng)絡(luò)圖片轉(zhuǎn)為 base64 字符串 4、將 base64 字符串轉(zhuǎn)為圖片輸出 注:該方法的入?yún)?,base64 格式文件不得有 文件頭部標(biāo)識信息,否則會轉(zhuǎn)換

    2024年02月10日
    瀏覽(31)
  • 微信小程序接收二進(jìn)制流文件(圖片預(yù)覽,文件打開)

    ?下面通過downloadOaFile接口獲取到二進(jìn)制流,即res.data 注意?。?!直接用downloadOaFile獲取的二進(jìn)制流文件在寫入時會導(dǎo)致文件損壞,必須在uni.request對象的屬性中加上 如果不加,默認(rèn)是 這一點(diǎn)非常重要,踩了好久的坑,而且這兩點(diǎn)的區(qū)別在network的response中還看不出來,因?yàn)閮烧?/p>

    2024年02月16日
    瀏覽(106)
  • uniapp 上傳本地圖片、以二進(jìn)制流的方式上傳

    1、上傳本地圖片 ?1.1?uni.chooseImage uni.chooseImage(OBJECT) 從本地相冊選擇圖片或使用相機(jī)拍照。 1.2?uni.uploadFile uni.uploadFile(OBJECT) 將本地資源上傳到開發(fā)者服務(wù)器,客戶端發(fā)起一個? POST ?請求,其中? content-type ?為? multipart/form-data 。 如頁面通過?uni.chooseImage?等接口獲取到一個

    2024年02月12日
    瀏覽(21)
  • 前端:JS:將圖片轉(zhuǎn)為二進(jìn)制與其他文本傳入后端

    在前端,可以將圖片轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),并將其與其他文本字符串一起發(fā)送到后端。一種常見的方法是將所有數(shù)據(jù)組合為一個 FormData 對象,然后通過 AJAX 或 Fetch API 將其發(fā)送給后端。以下是一個示例: 解釋 : 當(dāng)文件輸入框內(nèi)容發(fā)生變化時,會觸發(fā) change 事件。然后,它會讀

    2024年04月26日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包