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

一.上传功能

1.

如果要实现上传功能,首先需要建立一个上传表单,具体如下:

enctype="multipart/form-data" method="post">

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()

遍历上传;

$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());

}

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: