如何将图像保存在文件夹yii2框架中?

如何将图像保存在文件夹yii2框架中?,yii2,Yii2,当我上传图像时,它会保存在默认文件夹/web中。我想将我的图像保存在用户定义的文件夹中。如果您使用模型/活动表单提交表单(上载图像),类似的操作应该可以完成。关键部分是saveAs,其中第一个参数可以是文件的路径。这也包括 还可以深入了解类。\Yii::$app->basePath对应于您的应用程序文件夹,例如\myapp\backend\。因此,如果要将其保存到myapp\backend\data,请按如下方式保存它: $file = \yii\web\UploadedFile::getIns

当我上传图像时,它会保存在默认文件夹/web中。我想将我的图像保存在用户定义的文件夹中。

如果您使用模型/活动表单提交表单(上载图像),类似的操作应该可以完成。关键部分是saveAs,其中第一个参数可以是文件的路径。这也包括


还可以深入了解类。

\Yii::$app->basePath
对应于您的应用程序文件夹,例如
\myapp\backend\
。因此,如果要将其保存到
myapp\backend\data
,请按如下方式保存它:

$file = \yii\web\UploadedFile::getInstance($model, 'logo');
$file->saveAs(\Yii::$app->basePath . '/data/'.$file);
Yii 2:


它将我的图像保存在web/uploads文件夹中。

如果它是一个用户定义的文件夹,很有可能您必须动态创建目录,而该方法不会这样做。对于Yii2,我将使用“yii\helpers\BaseFileHelper”类中的createDirectory()方法。 例:


查看

最好的方法是使用yii2文件包。 更多功能

  • 文件上传小部件(基于Blueimp文件上传)
  • 用于存储文件的组件(构建在flysystem之上)
  • 下载、删除和查看(下载)文件的操作
  • 删除模型时在模型中保存文件和删除文件的行为

谢谢你的建议,但现在我知道了如何改变道路。。我们可以使用chdir('path to folder');它会将默认目录更改为用户定义的目录。在yii2中,你能告诉我如何在yii2中做到这一点吗。我在yii2中面临一些问题
$file = \yii\web\UploadedFile::getInstance($model, 'logo');
$file->saveAs(\Yii::$app->basePath . '/data/'.$file);
//yii 1.1 example
if($file=CUploadedFile::getInstanceByName("Shorty[avatar]"))
{
    $basepath = preg_replace('~([\\\]|[\/])protected~s','',Yii::app()->basePath);

    $filename = $basepath ."/images/shorty_images/" . $shorty_model->id . "/";

    if(!file_exists($filename))
        if(!mkdir($basepath ."/images/shorty_images/" . $shorty_model->id, 0777, true))
            throw new CHttpException(404,'Directory create error!');

    $status = $file->saveAs($filename . iconv("UTF-8", "ASCII//IGNORE", $file->name));
}
if ($model->load(Yii::$app->request->post())) {

    $model->password=md5($model->password);
    $model->photo = UploadedFile::getInstance($model, 'photo');

    if($model->validate()){
        $model->photo->saveAs('uploads/' . $model->photo->baseName . '.' . $model->photo->extension);
        $model->save();
        return $this->redirect(['index']);
    }
} 
use yii\web\UploadedFile;
use yii\helpers\BaseFileHelper;

$model->uploaded_file = UploadedFile::getInstance($model, 'uploaded_file');

$unique_name = uniqid('file_');
$model->file_type = $model->uploaded_file->extension;
$model->file_name = $unique_name.'.'.$model->file_type;
$model->file_path = 'uploads/projects/'. $project_id;

BaseFileHelper::createDirectory($model->file_path);

$model->uploaded_file->saveAs($model->file_path .'/'. $model->file_name);
$model->save();