【发布时间】:2016-08-04 04:16:04
【问题描述】:
我有一个表格
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?php echo $form->field($userformmodel, 'user_image')->fileInput(); ?>
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
<?php ActiveForm::end(); ?>
我正在上传表单中的文件并提交
In the model I have written the code as
public function rules()
{
return [
[['user_image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg']
];
}
public function upload()
{
if ($this->validate()) {
$this->user_image->saveAs('uploads/' . $this->user_image->baseName . '.' . $this->user_image->extension);
return true;
} else {
return false;
}
}
在我的控制器中
public function actionProfile()
{
$model = new UserProfile();
$userformmodel = new UserForm();
$model->user_image = UploadedFile::getInstance($userformmodel, 'user_image');
if($model->save(false))
{
$model->upload();
}
}
这只是创建一个名为uploads 的目录。但我想在上传目录中为每个用户创建一个目录,即基于数据库表 user 中的主键,我想创建并命名目录名称。
例如,如果用户注册的主键保存为4,则必须创建一个名为4的目录,并将他上传的文件保存到该目录中。
如何做到这一点?请帮忙。
【问题讨论】:
-
嗯,你应该简单地创建目录之前......你尝试了什么?
-
我没有尝试任何东西,因为我没有找到任何相关的解决方案。如何创建子目录
-
你搜索了吗?? *.com/questions/4384951/…
-
yii2的情况是一样的吗?还是我们有任何相同的小部件?
-
我不建议使用主键作为目录名称(尤其是当目录可公开访问时)。创建一个唯一令牌作为目录名称,使用 mkdir()(和 chmod())创建目录并将文件上传到此目的地。将目录名称存储在数据库中以链接到用户
标签: yii2 yii2-advanced-app yii2-basic-app yii2-model yii2-validation