嘿傢伙我試圖設置一個下載按鈕,用戶可以下載一個文件,使用kartik的File Input Widget(單上傳)上傳文件。Yii2 sendFile() - 試圖獲取非對象的屬性
這些代碼駐留在CRUD生成的視圖/控制器/模型中。
這是視圖按鈕的代碼,
<?= Html::a('Download Uploaded File', ['download', 'id' => $model->form_id], [
'class' => 'btn btn-danger',
'data' => [
'confirm' => 'Are you sure you want to download this item?',
'method' => 'post',
],
]) ?>
控制器功能(下載),
public function actionDownload($id) {
$model = $this->findModel($id);
$path = Yii::getAlias('@web') . '/uploads';
$file = '/borang/'.$model->form_id.'.'.$model->file->extension;
if (file_exists($file)) {
Yii::$app->response->sendFile($file);
}
}
控制器功能(上載其爲創建動作內側)
public function actionCreate()
{
$model = new FormMovement();
if ($model->load(Yii::$app->request->post())) {
$model->file = UploadedFile::getInstance($model, 'file');
if (!empty($model->file) && $model->validate()) {
$model->fm_upload = 'uploads/borang/'.$model->form_id.'.'.$model->file->extension;
$model->save();
$model->file->saveAs('uploads/borang/'.$model->form_id.'.'.$model->file->extension);
return $this->redirect(['view', 'id' => $model->form_id]);
}else{
$model->save();
return $this->redirect(['view', 'id' => $model->form_id]);
}
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
這是錯誤日誌, '嘗試獲取非對象的屬性'在C:\ xampp \ htdo CS \ adminsys \前端\控制器\ FormMovementController.php:181
指向,
$file = '/borang/'.$model->form_id.'.'.$model->file->extension;
下載動作中(控制器)
這部分'$ model-> file-> extension'在下載操作中找不到。 –