c语言sscanf函数的用法是什么
268
2022-11-23
YII2.0的文件上传, 并把文件名称重新编译
/** *@Action 文件上传示例 *@这里我们演示的是一个YII2.0的文件上传, 并把文件名称重新编译 *@我们上传的是一个叫 photo 的jpg和png格式的文件 */ Controller 控制器 request->isPost) *# { *# $model->photo = UploadedFile::getInstance($model, 'photo'); *# if($model->validate() && $path=$model->upload()) *# { *# echo $path;die; //输出文件路径 *# } *# else *# { *# var_dump($model->getErrors());die; *# } *# } * */ /** *@我在这里推荐一个简易的做法 ↓ */ $model = new UploadFile(); if (\Yii::$app->request->isPost) { $image = $model->photo = UploadedFile::getInstance($model, 'photo'); if ($file_path = $model->upload($image)) { echo $file_path;die; return; } } return $this->render('index',[ 'model' => $model ]); } Models模型层 false, 'extensions' => 'png, jpg','wrongExtension'=>'只能上传{extensions}类型文件!'], ]; } /** *@Action 文件上传 */ public function upload() { if ($this->validate()) { $rootPath = "uploads/"; //定义上传的根目录 $ext = $this->photo->extension; //获取文件的后缀(*格式*) $randName = time() . rand(1000, 9999) . "." . $ext; //重新编译文件名称 $path = abs(crc32($randName) % 500); //编译第二层文件夹名称 $rootPath = $rootPath . $path . "/"; //拼接 if (!file_exists($path)){ //判断该目录是否存在 mkdir($rootPath,true); } $re = $this->photo->saveAs($rootPath . $randName); //调用内置封装类**执行上传 if($re){ return $rootPath . $randName; //上传成功**返回文件的路径名称 }else{ return false; } } else { return false; } } } VIEWS视图层 ['enctype' => 'multipart/form-data']]) ?> = $form->field($model, 'photo')->fileInput() ?>
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~