1、 如果要实现上传功能,首先需要建立一个上传表单
<form action="http://www.tp6stu.com/upload/index" method="post" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" name="" value="上传"> </form>
2、创建一个控制器 upload.php 并使用 Request::file 来获取上传数据
// 获取 表单的上传数据 $file = Request::file('image')
3、使用Filesystem::putfile() 方法 实现上传文件,并写入指定目录
4、上传后返回的结果$info , 可以输出当前上传文件的地址
// 目录在 runtime/storage/toppic/时间/文件 $info = Filesystem::putFile('topic',$file); <?php namespace app\controller; use think\facade\Request; use think\facade\Filesystem; class Upload { public function index(){ $file = Request::file('image'); //dump($file); $info = Filesystem::putfile('topic', $file); dump($info); } }
5、如果想更改上传文件的默认配置,在config/filesystem.php 中配置;
'root' => app()->getRuntimePath() .'storage',
6、默认规则下,上传的文件是以日期和微秒生成的方式 date
7、生成的规则还支持另外2种方式 md5和sha1
$info = Filesystem::putFile('topic',$file,'md5');
8、批量上传 使用 image[] 作为名称,并使用foreach() 遍历上传
<form action="/index/index/upload" enctype="multipart/form-data" method="post"> <input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="submit" value="上传" /> </form>
控制器代码:
public function upload(){ // 获取表单上传文件 $files = request()->file('image'); $savename = []; foreach($files as $file){ $savename[] = \think\facade\Filesystem::putFile( 'topic', $file); } }