laravel-admin/docs/zh/model-form-upload.md
2022-09-21 11:59:53 +08:00

114 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 文件/图片上传
[model-form](/zh/model-form.md)通过以下的调用来生成form元素。
```php
$form->file('file_column');
$form->image('image_column');
```
## 修改存储路径或文件名
```php
// 修改上传目录
$form->image('picture')->move('public/upload/image1/');
// 使用随机生成文件名 (md5(uniqid()).extension)
$form->image('picture')->uniqueName();
// 自定义文件名
$form->image('picture')->name(function ($file) {
return 'test.'.$file->guessExtension();
});
```
[model-form](/zh/model-form.md)支持本地和云存储的文件上传
## 本地上传
先添加存储配置,`config/filesystems.php` 添加一项`disk`:
```php
'disks' => [
... ,
'admin' => [
'driver' => 'local',
'root' => public_path('uploads'),
'visibility' => 'public',
'url' => env('APP_URL').'/uploads',
],
],
```
设置上传的路径为`public/uploads`(public_path('uploads'))。
然后选择上传的`disk`,打开`config/admin.php`找到:
```php
'upload' => [
'disk' => 'admin',
'directory' => [
'image' => 'images',
'file' => 'files',
]
],
```
`disk`设置为上面添加的`admin``directory.image``directory.file`分别为用`$form->image($column)``$form->file($column)`上传的图片和文件的上传目录。
## 云盘上传
如果需要上传到云存储,需要安装对应`laravel storage`的适配器,拿七牛云存储举例
首先安装 [zgldh/qiniu-laravel-storage](https://github.com/zgldh/qiniu-laravel-storage)
同样配置好disk`config/filesystems.php` 添加一项:
```php
'disks' => [
... ,
'qiniu' => [
'driver' => 'qiniu',
'domains' => [
'default' => 'xxxxx.com1.z0.glb.clouddn.com', //你的七牛域名
'https' => 'dn-yourdomain.qbox.me', //你的HTTPS域名
'custom' => 'static.abc.com', //你的自定义域名
],
'access_key'=> '', //AccessKey
'secret_key'=> '', //SecretKey
'bucket' => '', //Bucket名字
'notify_url'=> '', //持久化处理回调地址
'url' => 'http://of8kfibjo.bkt.clouddn.com/', // 填写文件访问根url
],
],
```
然后修改`laravel-admin`的上传配置,打开`config/admin.php`找到:
```php
'upload' => [
'disk' => 'qiniu',
'directory' => [
'image' => 'image',
'file' => 'file',
],
],
```
`disk`选择上面配置的`qiniu`