画像のURLはbase64に変換されてから、blobに変換され、サーバーにアップロードされます

/ **

  • 対応する画像をアップロードしてblobとして保存するようにサーバーにリクエストを送信します

  • @param {String} url画像のパス
    * /
    function upLoadPhont(url){ this.urlToBase64(url).then(base64 => { var _base64 = base64.split( '、')[1] // base64 = = data:image / jpg; base64、/ 9j ... this.base64ToBlob({ b64data:_base64、contentType: 'image / png' })。then(res => { // resはblobvar formData = new FormData (); formData。append( "uploadFile"、res、 'aaa.jpg'); // aaa.jpg画像名uploadFileは非常に重要ですformData.append( "logicId"、 "75.10.02"); $ .ajax ({ url:basePath + "/businesslogic_upload.json"、type :" post "、data:formData、dataType :" json "、processData:false、contentType:false、

















    成功:function(data){ showPhoto(url、data); } });


     });
    

    });
    }

function urlToBase64(url){ //成功した場合はコールバック関数を解決し、失敗した場合はコールバック関数を拒否しますreturn new Promise((resolve、reject)=> { let image = new Image(); image.onload = function(){ let canvas = document.createElement( 'canvas'); canvas.width = this.naturalWidth; canvas.height = this.naturalHeight; //画像をキャンバスに挿入し、canvas.getContext( '2d')。drawImage(image、0 、0); //結果letresult = canvas.toDataURL( 'image / png')resolve(result); }; image.setAttribute( "crossOrigin"、 'Anonymous'); image.src = url; //画像の読み込み失敗したエラー処理image.onerror =()=> { reject(new Error( 'Image stream exception')); }; }); }




















//原則:URL.createObjectURLを使用して、blobオブジェクト
関数の一時URLを作成しますbase64ToBlob({ b64data = ''、contentType = ''、sliceSize = 512 } = {}){ return new Promise((resolve、reject)= > { // atob()メソッドを使用してデータをデコードしますlet byteCharacters = atob(b64data); let byteArrays = []; for(let offset = 0; offset <byteCharacters.length; offset + =ママサイズ){ letスライス= byteCharacters.slice(オフセット、オフセット+スライスサイズ); let byteNumbers = []; for(let i = 0; i <slice.length; i ++){ byteNumbers.push(slice.charCodeAt(i)); } // 8-ビット符号なし整数値の型付き配列。コンテンツは0に初期化されます。//要求されたバイト数を割り当てることができない場合、例外が発生します。byteArrays.push(new Uint8Array(byteNumbers));

















}
let result = new Blob(byteArrays、{ type:contentType }); result = Object.assign(result、{ // jartto:URLはここで処理する必要があります。createObjectURLpreview :URL.createObjectURL(result)、name:}); resolve(result)}); }





图片示例.png



おすすめ

転載: blog.csdn.net/qq_26634873/article/details/103976264
おすすめ