VUEアップロード画像入力=ファイル

転送します。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( "応答"、レスポンス);
       });
}、

おすすめ

転載: www.cnblogs.com/siyecao2010/p/11408555.html