15.thinkphp的上传功能

一.上传功能

  1. 如果要实现上传功能,首先需要建立一个上传表单,具体如下:
php 复制代码
<form action="http://localhost/tp6/public/upload"
 enctype="multipart/form-data" method="post">
 <input type="file" name="image">
 <input type="submit" value="确定">
 </form>
  1. 创建一个控制器upload.php,并使用Request::file来获取上传数据:
php 复制代码
//获取表单的上传数据
$file = Request::file('image');

然后创建一个控制器upload.php:

  1. 使用Filesystem::putfile()方法,来实现上传文件,并写入指定目录;

默认保存到storage目录下。

  1. 上传后返回的结果$info,可以输出当前上传文件的地址;
php 复制代码
//目录在runtime/storage/toppic/时间/文件
$info = Filesystem::putFile('topic', $file);

默认保存到storage目录下。

  1. 如果想更改上传文件的默认配置,在config/filesystem.php中配置;
php 复制代码
'root' => app()->getRuntimePath() . 'storage',
  1. 默认规则下,上传的文件是以日期和微秒生成的方式:date;

  2. 生成的规则还支持另外两种方式:md5和sha1;

php 复制代码
$info = Filesystem::putFile('topic', $file, 'md5');

但是这样子看多难受,直接用日期更好

  1. 批量上传,使用image[]作为名称,并使用foreach()遍历上传;
php 复制代码
<input type="file" name="image[]">
 <input type="file" name="image[]">
 <input type="file" name="image[]">
 $files = Request::file('image');
 $info = [];
 foreach ($files as $file) {
 $info[] = Filesystem::putFile('topic', $file);
 }
 dump($info);
  1. 结合之前的验证器,我们写一个针对upload的独立验证;
php 复制代码
//上传图片文件
$file = Request::file('image');
 //编写上传规则,必须是上传文件,必须是jpg.png.gif后缀
$validate = Validate::rule([
 'image'
 => 'file|fileExt:jpg,png,gif'
 ]);
 //得到上传文件和规则比对
$result = $validate->check([
 'image'
 =>
 $file
 ]);
 //通过输出地址,否则输出错误
if ($result) {
 $info = Filesystem::putFile('topic', $file);
 dump($info);
 } else {
 dump($validate->getError());
 }
相关推荐
bytebeats5 分钟前
移动开发中WebView使用的过去现在和未来
android·webview
恋猫de小郭11 分钟前
腾讯 ovCompose 开源,Kuikly 鸿蒙和 Compose DSL 开源,腾讯的“双”鸿蒙方案发布
android·前端·flutter
Chenyu_3101 小时前
05.MySQL表的约束
android·开发语言·网络·数据库·网络协议·mysql·php
我的蒲公英1 小时前
2025年了,别再用微信群发APK了:内测分发的正确打开方式
android·安全·ios
lilihewo2 小时前
基于 Android 和 JBox2D 的简单小游戏
android
驱动小马达2 小时前
安卓添加设备节点权限和selinux访问权限
android·内核
没有了遇见2 小时前
Android 常用动画梳理
android
我的青春不太冷2 小时前
Android高级开发第四篇 - JNI性能优化技巧和高级调试方法
android·性能优化
未来之窗软件服务2 小时前
android 上位机调试软件-安卓串口 com ttl 调试——仙盟创梦IDE
android·ide·上位机·仙盟创梦ide
小白本无忧5 小时前
PHP 垃圾回收高级特性
android·java·php