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条经验 获得超7个赞
声明一个属性以在模型类中存储文件名。还要为此属性声明文件验证规则,以确保上传的文件具有特定的扩展名。
然后,在控制器类中定义一个操作方法来收集用户提交的数据。
$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 关注
- 120 浏览
添加回答
举报