Yii2使用自带的UploadedFile实现的文件上传

时间:2021-05-25

我们先来看看在yii2中支持的图片上传怎么进行处理的。

首先我们创建model\Upload.php文件

<?phpnamespace backend\models;use Yii;use yii\web\UploadedFile;class Upload extends \yii\db\ActiveRecord{/*** @var UploadedFile|Null file attribute*/public $file;/*** @return array the validation rules.*/public function rules(){return [[["file"], "file",],];}}

下面我们看看view层是怎么渲染的

<?phpuse yii\widgets\ActiveForm;$form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"]]); ?><?= $form->field($model, "file")->fileInput() ?><button>Submit</button><?php ActiveForm::end(); ?>

最后实现controller层的实现

namespace backend\controllers;use backend\models\Upload;use yii\web\UploadedFile;class ToolsController extends \yii\web\Controller{/*** 文件上传* 我们这里上传成功后把图片的地址进行返回*/public function actionUpload (){$model = new Upload();$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实现的文件上传的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章