Thinkphp 6.0的上传功能

本节课我们来学习一下系统提供的上传方法,如何使用这个方法进行文件上传。

一.上传功能

1. 如果要实现上传功能,首先需要建立一个上传表单,具体如下:
<form action="http://localhost/tp6/public/upload"
enctype="multipart/form-data" method="post">
<input type="file" name="image">
<input type="submit" value="确定">
</form>

2. 创建一个控制器 upload.php ,并使用 Request::file 来获取上传数据:
//获取表单的上传数据
$file = Request::file('image');

3. 使用 Filesystem::putfile() 方法,来实现上传文件,并写入指定目录;
4. 上传后返回的结果 $info ,可以输出当前上传文件的地址;
//目录在 runtime/storage/toppic/时间/文件
$info = Filesystem::putFile('topic', $file);

5. 如果想更改上传文件的默认配置,在 config/filesystem.php 中配置;
'root' => app()->getRuntimePath() . 'storage',

6. 默认规则下,上传的文件是以日期和微秒生成的方式: date
7. 生成的规则还支持另外两种方式: md5 sha1
$info = Filesystem::putFile('topic', $file, 'md5');

8. 批量上传,使用 image[] 作为名称,并使用 foreach() 遍历上传;
<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);

9. 结合之前的验证器,我们写一个针对 upload 的独立验证;
//上传图片文件
$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());
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值