転送します。https://www.cnblogs.com/dudu123/p/10215813.html
< 入力 タイプ= "FILE" 受け入れる= "画像/ PNG、画像/ JPEG画像/ gif形式、画像/ JPG" @change = "uploadImg" REF = "uploaderImg" >
まず、ロジック
李chooseImageトリガ・イベントが入力タグイベントphotoChangeトリガーされるクリック
inputタグイベントphotoChange
ファイルには、次の変数を返します。
シミュレーション方法のアップロードフォーム
アップロード
第二に、コード
<LIクラス= "スクロール項目最初の項目" @ = "chooseImage"をクリックしてください> <Iクラス= "iconPhoto"> </ I> <スパンクラス= "タイトル">拍照</ span>に 変更@ <入力=」 photoChange($イベント)」タイプ= "ファイル" ID = "upload_file"複数のスタイル= "表示:なし" /> </ LI>
chooseImage(){ のdocument.getElementById( 'upload_file')をクリック();. //トリガ入力ファイルアップロードファイル制御イベントphotoChange }、 photoChange(EL){ varファイルel.target.files = [0]; //名前"dangqi1.png" ||タイプ: "画像/ PNG" VAR = file.type.splitタイプ( '/')[0];は、 IF(タイプ=== '画像'){ 画像IMG //はに変換されBASE64の VARリーダー(=新しい新規FileReader); reader.readAsDataURL(ファイル); varが、このことは=; reader.onloadend =関数(){ VAR dataURL = reader.result。 BLOB that.dataURItoBlob = VAR(dataURL); that.upload(BLOB); //アップロードインタフェースを実行 }; }そうでなければ{ アラート( '非アップロード画像'); } }、 dataURItoBlob(DataURI){ //のBase64復号は せ= window.atob延ByteString(dataURI.split( ' ')[1]); mimeString dataURI.split =('')とする[0] .split( ':')[1] .split( ';') [0]; LET T = mimeString.split( '/')[1]; ArrayBuffer新しい新しいAB&=(byteString.length)とする。 せて新しい新しいUint8Array IA =(AB&)。 のため(LET I = 0; I <byteString.length; I ++){ IA [I] = byteString.charCodeAt(I); } 新たなBLOB([AB]、{タイプ:mimeStringを})を返します。 }、 {(imgUrl)をアップロード
=新しい新しいFORMDATAいるFormData LETに();
formData.append( 'ファイル'、ファイル);
この$ Axios({。
方法: 'POST'、
URL: 'パス'、
ヘッダ:{
'種類-コンテンツ':「マルチパート/フォーム-data」、//要求フォーマット設定要求JSONヘッダ
}、
データ:FORMDATA
。})を((応答)=> {
にconsole.log( "応答"、レスポンス);
});
}、
まず、ロジック
李chooseImageトリガ・イベントが入力タグイベントphotoChangeトリガーされるクリック
inputタグイベントphotoChange
ファイルには、次の変数を返します。
シミュレーション方法のアップロードフォーム
アップロード
第二に、コード
<LIクラス= "スクロール項目最初の項目" @ = "chooseImage"をクリックしてください> <Iクラス= "iconPhoto"> </ I> <スパンクラス= "タイトル">拍照</ span>に 変更@ <入力=」 photoChange($イベント)」タイプ= "ファイル" ID = "upload_file"複数のスタイル= "表示:なし" /> </ LI>
chooseImage(){ のdocument.getElementById( 'upload_file')をクリック();. //トリガ入力ファイルアップロードファイル制御イベントphotoChange }、 photoChange(EL){ varファイルel.target.files = [0]; //名前"dangqi1.png" ||タイプ: "画像/ PNG" VAR = file.type.splitタイプ( '/')[0];は、 IF(タイプ=== '画像'){ 画像IMG //はに変換されBASE64の VARリーダーFileReaderの新しい新=(); reader.readAsDataURL(ファイル) ; VAR =このこと reader.onloadend =関数(){ VAR dataURL = reader.result。 VAR = that.dataURItoBlobのBLOB(dataURL)。 that.upload(BLOB); //アップロードインタフェースを実行 }; }そうでなければ{ アラート( '非アップロード画像'); } }、 dataURItoBlob(DataURI){ //のBase64復号は せ= window.atob延ByteString(dataURI.split( ' ')[1]); mimeString dataURI.split =('')とする[0] .split( ':')[1] .split( ';') [0]; LET T = mimeString.split( '/')[1]; ArrayBuffer新しい新しいAB&=(byteString.length)とする。 せて新しい新しいUint8Array IA =(AB&)。 以下のための(I = 0せ; I <byteString.length; iが++){ IA [I] = byteString.charCodeAt(I); } 新たなBLOB([AB]、{タイプ:mimeStringを})を返します。 }、 {(imgUrl)をアップロード
=新しい新しいFORMDATAいるFormData LETに();
formData.append( 'ファイル'、ファイル);
この$ Axios({。
方法: 'POST'、
URL: 'パス'、
ヘッダ:{
'種類-コンテンツ':「マルチパート/フォーム-data」、//要求フォーマット設定要求JSONヘッダ
}、
データ:FORMDATA
。})を((応答)=> {
にconsole.log( "応答"、レスポンス);
});
}、