2016-11-19 13 views
0

私は実際にファイルをアップロードして仕事をするのに本当に苦労しています。私はこれがこれまでのように挑戦的になるとは思わなかった。React-Node File Uploader

だから私は、単純なHTML要素から始めましょう:

handleSubmit = (event) => { 
     event.preventDefault(); 

     axios.post('/api/v1/testing/upload', 
      this.state.file) 
      .then(function (response) { 
      console.log(response); 
      }) 
      .catch(function (error) { 
      console.log(error); 
     }); 
    }; 

私はbusboy、私は考えることができるマルチパートのすべてを使用しました:ここ

<input type="file" id="server-avatar-file" className="file-input" accept=".jpg,.jpeg,.png" onChange={this.handleChange} style={{position: "absolute", top: "0px", left: "0px", width: "100%", height: "100%", opacity: "0", cursor: "pointer"}} /> 

は私のフォームデータを提出しています。

しかし、問題は私のフロントエンドが私のバックエンドにすべての正しい情報を送信していないことに起因していると思います。それは価値がありますようthis.state.fileが持っているものである

enter image description here

私は、ファイルの種類を解析しないノードでbodyParserを理解し、私は、サーバー上でそれらを解析する方法に慣れていませんよ。ファイルシステムにアップロードしてテストしたいのですが、実稼働環境でCDNに移動したいので、それを簡単に行うことができればすばらしいでしょう!

+1

生の 'File'オブジェクトの代わりに' FormData'インスタンスを使ってみましたか?その「バスボーイ」や「マルチター」などでうまくいくはずです。 – mscdex

+0

うわー、私は本当にばかげている、それはすべてだった、あなたは私がしたすべてのグーグルでそれを行う必要があったと思うだろうと思うだろう。 ありがとうございました! –

答えて

1

busboymulterとその他のマルチパート解析モジュールでは、正しくフォーマットされたmultipart/form-data要求が必要です。このようなリクエストをaxiosで送信する簡単な方法の1つは、代わりにFileまたはBlobのインスタンスの代わりにFormDataインスタンスをデータ引数として渡すことです。

関連する問題