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);
}
}
