上傳data image圖片

最近在項目中有這么一個需求,就是上傳一個視頻文件,然后要獲取視頻文件的第一幀圖片,這個可以通過canvas獲取得到,得到的是一個dataURL,之后還要將這個圖片上傳到云,這個時候如何操作就不清楚了,于是乎,google一番,總結如下:

  1. 將dataURL轉成Blob
  2. 利用formData
  3. 異步上傳
function b64toBlob(b64Data, contentType='', sliceSize=512) {
        const byteCharacters = atob(b64Data);
        const byteArrays = [];

        for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
            const slice = byteCharacters.slice(offset, offset + sliceSize);

            const byteNumbers = new Array(slice.length);
            for (let i = 0; i < slice.length; i++) {
                byteNumbers[i] = slice.charCodeAt(i);
            }

            const byteArray = new Uint8Array(byteNumbers);

            byteArrays.push(byteArray);
        }

      const blob = new Blob(byteArrays, {type: contentType});
      return blob;
}
// dataURL to blob

// 假設一個dataURL
const ImageURL = "data:image/jpeg;base64,abcdefg

// Split the base64 string in data and contentType
const block = ImageURL.split(";");

// Get the content type of the image
const contentType = block[0].split(":")[1];// In this case "image/jpeg"

// get the real base64 content of the file
const realData = block[1].split(",")[1];// In this case "R0lGODlhPQBEAPeoAJosM...."

// Convert it to a blob to upload
var blob = b64toBlob(realData, contentType);
// new a formData

const formData = new FormData();
formData.append('blob', blob);
// upload

$.ajax({
    url:url,
    data: formData
    type:"POST",
    contentType:false,
    processData:false,
    error:function(err){
    },
    success:function(data){
    },
});
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,150評論 25 708
  • 參考1-HTML5實現圖片壓縮上傳功能參考2-移動前端—圖片壓縮上傳實踐參考3-移動端H5圖片壓縮上傳 大體步驟 ...
  • 在項目中經常遇到需要將本地圖片上傳至服務端的情況,免不了要本地預覽選擇的圖片,圖片太大的情況下還需要對圖片進行一番...
    學不可以已閱讀 2,444評論 0 0
  • 轉眼間,我們認識了差不多6年時間了,記得當初認識你的那個瞬間,想想眼睛都流露出來微笑,認識的瞬間確實很是一個突然...
    認知從善閱讀 421評論 0 0
  • 大寶:牛牛(7周歲6個月13天) 二寶:申申(11個月7天) 讀經時間:總第52天,第7周3天 讀經人員:牛牛、牛...
    牛牛的豬媽閱讀 232評論 0 0