2017-10-14 9 views
0

私はreact-images-uploadパッケージを通して画像をアップロードしようとしています。しかし、私はAPIの扱いがどのように見えるか分かりません。ReactJS yii2 apiで画像をアップロード

ザ・これまでのコードに反応:

renderForm() { 
     return (
      <section className="col-md-12 col-sm-12"> 
       <div className="col-md-6 col-sm-6"> 
        <form onSubmit={ this.handleSubmit }> 
         <div className="form-group"> 
          <ImageUploader 
           name='image' 
           withIcon={ true } 
           buttonText='Choose images' 
           onChange={ this.onDrop } 
           imgExtension={ ['.jpg', '.png'] } 
           maxFileSize={ 1048576 } 
           withPreview={ true } 
           label='Max file size: 10mb, accepted: jpg, png' 
           fileSizeError='File is too big.' 
           fileTypeError=': not supported extension.' 
          /> 
         </div> 
         <input className="btn btn-default" type="submit" value="Submit" /> 
        </form> 
       </div> 
      </section> 
     ); 
    } 

handleSubmit(event) { 
    event.preventDefault(); 
    this.props.createSponsor(this.state); 
} 

onDrop(picture) { 
    this.setState({ 
     pictures: this.state.pictures.concat(picture) 
    }); 
} 

constructor(props) { 
    super(props); 

    this.state = { 
     name: '', 
     pictures: [] 
    }; 

    this.handleSubmit = this.handleSubmit.bind(this); 
    this.onDrop = this.onDrop.bind(this); 
} 

そしてYii2 APIコードを。 $モデルをUploadedFile :: getInstance($ model、 'image')で埋めようとすると、var_dump-ingの後も空のままです。

public function actionCreateSponsor() 
    { 
     $request = Yii::$app->request; 

     if ($request->post()) { 
      $model = new Sponsors(); 
      $model->name = $request->post('name'); 

      $model->image = UploadedFile::getInstance($model, 'image'); 

      //var_dump($model); die; 

      if (ImageUploadComponent::upload($model)) { 
       return Json::encode(['status' => true, 'data' => 'success']); 
      } else { 
       return Json::encode(['status' => false, 'data' => 'error_not_saved']); 
      } 
    } 

注:ImageUploadComponentは現在空です。

答えて

0

youreのフォームを生成するActiveForm$modelを使用していない、とあなたのフォームが特定の名前を持っていないので、あなたがして、ファイルを取得する必要があります

$model->image = \yii\web\UploadedFile::getInstanceByName('image'); 

    //instead of 
    $model->image = UploadedFile::getInstance($model, 'image'); 
0

を使用してみてください:

$model->image = UploadedFile::getInstanceByName('image'); 
+0

のvar_dump $ model->イメージを表示すると、NULLだけが表示されます。私はそれが要求と関係があると思う。 –

関連する問題