1、前端示例代码
<form action="/index/upload" enctype="multipart/form-data" method="post">
<input type="file" name="image" /> <br>
<input type="submit" value="上传" />
</form>
2、控制器接收代码
public function upload(){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
// 接收示例一
// 上传到本地服务器 默认上传到runtime/storage目录下面生成以当前日期为子目录
$fileName = \think\facade\Filesystem::putFile( 'image', $file,'命名规则:如md5,date,sha1三种选其一,默认md5');
//接收示例二
// 如果是多应用的话,上传根目录默认是runtime/index/storage,如果你希望上传的文件是可以直接访问或者下载的话,可以使用public存储方式。
$fileName = \think\facade\Filesystem::disk('public')->putFile( 'image', $file,'命名规则:如md5,date,sha1三种选其一,默认md5');
}
3、上传验证
public function upload(){
// 获取表单上传文件
$files = request()->file();
try {
validate(['image'=>'fileSize:10240|fileExt:jpg|image:200,200,jpg'])
->check($files);
$savename = [];
foreach($files as $file) {
$savename[] = \think\facade\Filesystem::putFile( 'topic', $file);
}
} catch (\think\exception\ValidateException $e) {
echo $e->getMessage();
}
}
4、总结
Thinkphp6.0的上传省去了一些不必要的步骤 让上传更加便捷了 如果大家还有疑问可以参考Thinkphp6.0的官方文档