Yii2使用自带的UploadedFile实现的文件上传
我们先来看看在yii2中支持的图片上传怎么进行处理的。
首先我们创建model\Upload.php文件
<?php
namespacebackend\models;
useYii;
useyii\web\UploadedFile;
classUploadextends\yii\db\ActiveRecord
{
/**
*@varUploadedFile|Nullfileattribute
*/
public$file;
/**
*@returnarraythevalidationrules.
*/
publicfunctionrules()
{
return[
[["file"],"file",],
];
}
}
下面我们看看view层是怎么渲染的
<?php useyii\widgets\ActiveForm; $form=ActiveForm::begin(["options"=>["enctype"=>"multipart/form-data"]]);?> <?=$form->field($model,"file")->fileInput()?> <button>Submit</button> <?phpActiveForm::end();?>
最后实现controller层的实现
namespacebackend\controllers;
usebackend\models\Upload;
useyii\web\UploadedFile;
classToolsControllerextends\yii\web\Controller
{
/**
*文件上传
*我们这里上传成功后把图片的地址进行返回
*/
publicfunctionactionUpload()
{
$model=newUpload();
$uploadSuccessPath="";
if(Yii::$app->request->isPost){
$model->file=UploadedFile::getInstance($model,"file");
//文件上传存放的目录
$dir="../../public/uploads/".date("Ymd");
if(!is_dir($dir))
mkdir($dir);
if($model->validate()){
//文件名
$fileName=date("HiiHsHis").$model->file->baseName.".".$model->file->extension;
$dir=$dir."/".$fileName;
$model->file->saveAs($dir);
$uploadSuccessPath="/uploads/".date("Ymd")."/".$fileName;
}
}
return$this->render("upload",[
"model"=>$model,
"uploadSuccessPath"=>$uploadSuccessPath,
]);
}
}
以上所述是小编给大家介绍的Yii2使用自带的UploadedFile实现的文件上传的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!