ThinkPHP5 关于文件上传
2022-07-28 14:14:58
137
{{single.collect_count}}

经常使用ThinkPHP3后,在使用ThinkPHP5上费了好些功夫,今天总结一下关于tp5的文件上传,具体代码详情如下:

模板页(一定要加上enctype="multipart/form-data"):

<form action="{:url('index/index/upQuestionsWrite')}" method="post" class="form form-horizontal" enctype="multipart/form-data" id="addform"><div class="row cl"><label class="form-label col-xs-4 col-sm-2">选择试题文件:</label><div class="btn-upload form-group"><input type="text" name="uploadfile" id="uploadfile" class="input-text upload-url radius" readonly><a href="javascript:void();" class="btn btn-primary radius"><i class="Hui-iconfont"></i>浏览文件</a><input type="file" name="examfile" class="input-file" multiple> </div><boutton type="submit" class="btn btn-success btn-submit">导入试题</button></div></form>
控制器(在tp5中获取上传文件的文件名称与tp3略有不同):
public function upQuestionsWrite(){// 获取表单上传文件$file = request()->file('examfile');if(empty($file)) {$this->error('请选择上传文件');}// 移动到框架应用根目录/public/uploads/ 目录下$info = $file->move(ROOT_PATH.'public'.DS.'upload'); //如果不清楚文件上传的具体键名,可以直接打印$info来查看//获取文件(文件名),$info->getFilename()***********不同之处,笔记笔记哦//获取文件(日期/文件名),$info->getSaveName()**********不同之处,笔记笔记哦$filename = $info->getSaveName();//在测试的时候也可以直接打印文件名称来查看 if($filename){$this->success('文件上传成功!');}else{// 上传失败获取错误信息$this->error($file->getError());}} 


回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}