最初のプレビューファイルをアップロードする前に

FileReader.readAsDataURL()

1. antdコンポーネントは、アップロードに実装します

        { 
          avatarVisible
           && < モーダル
          タイトル = "上传头像" 
          可視 = {avatarVisible} 
          OnOK呼び出し = { この.onUpload} 
          onCancel = { この.onCancel} 
          クラス名 = {styles.modalBox} 
          bodyStyle属性 = {{高さ:500 }}
           > 
            < アップロード =「アバター」
              listType(リストタイプ) =「ピクチャーカード」
              クラス名 =「アバターアップローダー」
              showUploadList = {} 
              beforeUpload = { この.beforeUpload}
                   > 
                の<button> 
                   选择图片
                 </ボタン> 
            </アップロード> 
            <行> 
              <コルスパン= {12}> 
                <スパン> 
                支持JPG、GIF、PNG格式、小于2M
                 </スパン> 
                 <DIVクラス名= {styles.leftContainer}> 
                    {IMAGEURL<IMG SRC = {IMAGEURL} ALT = "アバター"スタイル= {{幅: '100%'}} />:NULL} 
                 </ div> 
              </コル> 
              <コルスパン= {12}>
                      {IMAGEURL<IMG SRC = {IMAGEURL} ALT = "アバター"スタイル= {{幅: '100%'}} />:NULL} 
                  </ div> 
              </コル> 
            </ ROW> 
          </モーダル> 
}

プロパティは、アップロードし、レンダリングを解析する前にファイルを取得するためのbeforeUploadの方法の主な用途

// 解析为BASE64位 
 getBase64 =(IMG、コールバック)=> { 
    CONSTリーダー = 新しいFileReaderの()。
    reader.addEventListener( '負荷'、()=> コールバック(reader.result))。
  //读取文件 reader.readAsDataURL(IMG); } //上传之前 beforeUpload
=ファイル=> { CONST {のfileList} = この.state。 この .getBase64(ファイル、IMAGEURL => この.setState({ IMAGEURL、 のfileList:[...のfileList、ファイル]、 // ローディング:偽 }) )。 リターン ; }

リサイクルAJAX要求、アップロード

onUpload =()=> { 
    CONST {のfileList} = この.state。
    constのFORMDATA = 新しいいるFormData(); 
    fileList.forEach(ファイル => { 
      formData.append( 'ファイル[]' ファイル); 
    }); 

    この.setState({
       // アップロード:真、
    })。
    // あなたが好きなAJAXライブラリを使用することができ 
    、要求を( 'https://www.mocky.io/v2/5cc8019d300000980a055e76' 、{ 
      方法: 'ポスト' 
      PROCESSDATA:
      データ:FORMDATA、
      成功:() =>{
         この.setState({ 
          のfileList:[] 
          // アップロード:偽
        })。
        message.success( 'が正常にアップロードします。' ); 
      }、
      エラー:() => {
         この.setState({
           // アップロード:偽
        })。
        message.error( 'アップロードに失敗しました。' ); 
      } 
    })。
  }。

2.使用して達成されるJS

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
<メタ文字コード= "UTF-8"> 
<タイトル>单图片上传预览</ TITLE> 
</ HEAD> 
<BODY> 
<DIV ALIGN = "センター"> 
<IMG幅= "400"高さ= "250" ID = "xmTanImg" /> <BR/> 
の<input type = "ファイル" ID = "PIC" NAME = "PIC"のonchange = "xmTanUploadImg(この)" /> 
<入力タイプ= "ボタン"値= "上传图片" /> <br /> 
</ div> 
<SCRIPT> // 选择图片、马上预览関数xmTanUploadImg(OBJ){
         VARのファイル= obj.files [0 ]。
          // ファイル。
    
    FileReaderの();
         //はファイル処理方法読み取る 
        reader.onloadstart = 関数(E){ 
            にconsole.log( "読取開始...." ); 
        } 
        reader.onprogress = 関数(E){ 
            にconsole.logを( "で....読み取り" ); 
        } 
        reader.onabort = 関数(E){ 
            にconsole.log( "リード割り込み.... " ); 
        } 
        reader.onerror = 関数(E){ 
            にconsole.log( "....例外を読み取ります" ); 
        }
        reader.onload = 関数(E){ 
            にconsole.log( "成功读取...." )。
            VaRの IMG =のdocument.getElementById( "xmTanImg" ); 
            img.src = e.target.result。
            // 或者img.src = this.result。//e.target ==この
        } 
        reader.readAsDataURL(ファイル)
    }
 </ SCRIPT> 
</ body> 
</ HTML>

 

おすすめ

転載: www.cnblogs.com/jcxfighting/p/11449298.html