3 回答
TA貢獻1848條經驗 獲得超2個贊
它不上傳,因為你調用$model->save()添加之前value到$model->file現場。
代碼應該看起來像
if ($model->load(Yii::$app->request->post())) {
$filename = $model->ltkcnt_contracts_name;
$model->file = UploadedFile::getInstance($model, 'file');
if ($model->save()) {
$model->file->saveAs('uploads/' . $filename . '.' . $model->file->extension);
}
}
您應該閱讀這篇文章以獲取更多信息。
TA貢獻1827條經驗 獲得超8個贊
聲明一個屬性以在模型類中存儲文件名。還要為此屬性聲明文件驗證規則,以確保上傳的文件具有特定的擴展名。
然后,在控制器類中定義一個操作方法來收集用戶提交的數據。
$model = new UploadForm();
if(isset(Yii::$app->request->post()))
{
$model->attributes=Yii::$app->request->post();
$model->file=UploadedFile::getInstance($model,'file');
if($model->save())
{
$model->file->saveAs('path/to/localFile');
}
}
TA貢獻1809條經驗 獲得超8個贊
<?php
namespace app\models;
use Yii;
use yii\web\UploadedFile;
class Contracts extends \yii\db\ActiveRecord
{
public $file;
public static function tableName()
{
return 'uploads_table';
}
public function rules()
{
return [
[['file'], 'file'],
];
}
public function attributeLabels()
{
return [
'file' => 'Files',
];
}
}
- 3 回答
- 0 關注
- 154 瀏覽
添加回答
舉報
