thinkphp6使用 Storage 类进行上传操作
时间: 2023-05-22 17:06:26 浏览: 118
可以通过以下的代码实现:
```php
use think\facade\Filesystem;
//上传文件到本地磁盘
$path = Filesystem::disk('public')->putFile('uploads', $file);
//上传文件到OSS
$path = Filesystem::disk('oss')->putFile('uploads', $file);
```
其中,`$file`为上传的文件对象。`Storage`类可以通过 `use think\facade\Storage;` 来引入。
相关问题
thinkphp6 上传图片
ThinkPHP6 中上传图片可以通过以下步骤实现:
1. 在控制器中引入文件上传类:
```php
use think\facade\Filesystem;
use think\facade\Request;
```
2. 创建方法来处理上传操作:
```php
public function upload()
{
// 获取表单上传文件
$file = request()->file('image');
// 移动到框架应用根目录/public/uploads/ 目录下
if ($file) {
$savename = Filesystem::disk('public')->putFile('uploads', $file);
// 返回图片的完整路径
return '/storage/' . $savename;
} else {
return '上传失败';
}
}
```
3. 在表单中添加文件上传控件:
```html
<form action="{:url('upload')}" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<button type="submit">上传</button>
</form>
```
在上述代码中,`putFile()` 方法将文件上传到 `public/uploads/` 目录下,并返回文件的保存路径。`disk()` 方法用于指定上传文件的存储磁盘,这里使用的是 public 磁盘,因此上传的文件将保存在 `public` 目录下。最后,将返回的保存路径添加上 `/storage/` 前缀,即可获取完整的访问路径。
注意:上传文件时需要确保存储目录的写入权限。
阅读全文