私は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は現在空です。
のvar_dump $ model->イメージを表示すると、NULLだけが表示されます。私はそれが要求と関係があると思う。 –