2017-07-09 4 views
0

ユーザーがアップロードボタンを押してファイルを選択すると、自動的にファイルがアップロードされますが、代わりに自動アップロードを実行したくない場合は、まずユーザーが選択してアップロードしたことを確認します。私はこの助けを必要とする助けが必要です。これはすべて反応の中で行われます。アップロードプレビューの表示とdropzoneによる自動アップロードの停止

const TITLE = 'Resources' 


class ResourceStep extends React.Component { 



onDrop(files) { 
var file = files[0]; 

axios.get('/awsUrl', { 
    headers: { 
    filename: file.name, 
    filetype: file.type 
    } 
}) 
.then(function (result) { 
    var signedUrl = result.data; 

    var options = { 
    headers: { 
     'Content-Type': file.type 
    } 
    }; 

    return axios.put(signedUrl, file, options); 
}) 
.then(function (result) { 
    console.log(result); 
}) 
.catch(function (err) { 
    console.log(err); 
}); 
} 

render() { 
let dropzoneRef; 
    return (
    <div> 
    <Paper style={style} zDepth={3}> 
     <div style={{textAlign:'center'}}> 
     <label> Upload ID : <RaisedButton style={{marginLeft: '20px'}}label="Upload" primary={true} onClick={() => { dropzoneRef.open() }}/></label> 
     <br/> 
     <br/> 
     <br/> 
     <label> Upload Picture : <RaisedButton style={{marginLeft: '30px'}}label="Upload" primary={true} onClick={() => { dropzoneRef.open() }}/></label> 
     <br/> 
     <br/> 
     <br/> 
     <label> Upload Logo : <RaisedButton style={{marginLeft: '45px'}}label="Upload" primary={true} onClick={() => { dropzoneRef.open() }}/></label> 
     </div> 
     <Dropzone ref={(node) => { dropzoneRef = node; }} onDrop={ (files) => this.onDrop(files) } style={{display:'none'}}/> 
    </Paper> 
    </div> 
); 
} 
} 

const mapStateToProps = (state) => { 
return { 
initialValues: state.application.Resources 
}; 
}; 

ResourceStep = reduxForm({ 

    form: 'ResourceStep' 
})(ResourceStep) 


export default { 
    Cmp: ResourceStep = connect(mapStateToProps)(ResourceStep), 
    TITLE 
}; 
+0

メモ帳++などでコードを書式設定する必要があります。読むのは難しいです。 –

答えて

0

だけでファイルにpreviewプロパティを使用してimg SRCにそれを設定します。

class ResourceStep extends React.Component { 
    constructor() { 
     super(); 

     this.state = { 
      file: {}, 
     }; 
    } 
    onDrop = (files) => { 
     var file = files[0]; 

     this.setState({ file }); 
    } 
    submitFile =() => { 
     axios.get('/awsUrl', { 
      headers: { 
      filename: this.state.file.name, 
      filetype: this.state.file.type 
      } 
     }) 
     .then(function (result) { 
      var signedUrl = result.data; 

      var options = { 
      headers: { 
       'Content-Type': this.state.file.type 
      } 
      }; 

      return axios.put(signedUrl, this.state.file, options); 
     }) 
     .then(function (result) { 
      console.log(result); 
     }) 
     .catch(function (err) { 
      console.log(err); 
     }); 
    } 
    render() { 
     let dropzoneRef; 
      return (
      <div> 
      <Paper style={style} zDepth={3}> 
       <div style={{textAlign:'center'}}> 
       <label> Upload ID : <RaisedButton style={{marginLeft: '20px'}}label="Upload" primary={true} onClick={() => { dropzoneRef.open() }}/></label> 
       <br/> 
       <br/> 
       <br/> 
       <label> Upload Picture : <RaisedButton style={{marginLeft: '30px'}}label="Upload" primary={true} onClick={() => { dropzoneRef.open() }}/></label> 
       <img src={this.state.file.preview} /> 
       <br/> 
       <br/> 
       <br/> 
       <label> Upload Logo : <RaisedButton style={{marginLeft: '45px'}}label="Upload" primary={true} onClick={() => { dropzoneRef.open() }}/></label> 
       </div> 
       <button type="button" onClick={this.submitFile} /> 
       <Dropzone ref={(node) => { dropzoneRef = node; }} onDrop={ (files) => this.onDrop(files) } style={{display:'none'}}/> 
      </Paper> 
      </div> 
     ); 
    } 
} 
関連する問題