23-11-1394، 12:19 ق.ظ
سلام
داشتم توی Yii از ویجت kartik از fileinputش استفاده می کردم. اولش خوب کار می کرد ولی وسط کار, از کار افتاد. از متغیر پست شده اون var_dump گرفتم مقدار ارسال شده رو از نوع string و خالی نشون میده. وقتی از UploadedFile::getInstance هم استفاده می کنم, توی خروجیش مشخصات فایل آپلود شده رو می ده ولی فاقد فایله و توی جابجایی فایل خطا می گیره.
لطفا دوستان راهنمایی کنن.
اینم کدهایی که استفاده کردم:
اینم توی کنترولر:
داشتم توی Yii از ویجت kartik از fileinputش استفاده می کردم. اولش خوب کار می کرد ولی وسط کار, از کار افتاد. از متغیر پست شده اون var_dump گرفتم مقدار ارسال شده رو از نوع string و خالی نشون میده. وقتی از UploadedFile::getInstance هم استفاده می کنم, توی خروجیش مشخصات فایل آپلود شده رو می ده ولی فاقد فایله و توی جابجایی فایل خطا می گیره.
لطفا دوستان راهنمایی کنن.
اینم کدهایی که استفاده کردم:
<?= $form->field($model, 'imageLogo')->widget(FileInput::classname(), [ 'options' => ['accept' => 'image/*',], 'language' => 'fa', 'pluginOptions' => [ 'showUpload' => FALSE, 'allowedFileExtensions' => ['jpeg', 'jpg', 'gif', 'png'], 'initialPreview' => [ (is_null($model->logo) ? NULL : Html::img(Yii::getAlias('@brand') . DIRECTORY_SEPARATOR . $model->logo, [ 'class' => 'file-preview-image', 'alt' => $model->title_en, 'title' => $model->title_fa ])), ], ], ]); ?>
اینم توی کنترولر:
public function actionUpdate($id) { $model = $this->findModel($id); //For delete old logo image and create new image for update $oldlogo = (is_null($model->logo) ? NULL : Yii::getAlias('@brand') . DIRECTORY_SEPARATOR . $model->logo); if ($model->load(Yii::$app->request->post())) { if (!empty($model->imageLogo)) { $image = UploadedFile::getInstance($model, 'imageLogo'); $ext = end((explode(".", $image->name))); $model->logo = $model->id . '_' . $model->title_en . ".{$ext}"; //create path for save new image $path = Yii::getAlias('@brand') . DIRECTORY_SEPARATOR . $model->logo; } if ($model->save()) { if (!empty($model->imageLogo)) { //delete old logo and save new logo if (file_exists($oldlogo)) { unlink($oldlogo); } $image->saveAs($path); CommonFunctions::resize($path, 200, 200, $path); } return $this->redirect(['view', 'id' => $model->id]); } } else { return $this->render('update', [ 'model' => $model, ]); } }