处理图片文件上传问题

mall
vine_liutk 2023-12-21 18:15:59 +08:00
parent 64ff120a9e
commit 0168489311
7 changed files with 34 additions and 17 deletions

View File

@ -34,7 +34,9 @@ class AdController extends AdminController
amis()->TableColumn('address', __('admin.ads.address'))->type('mapping')
->map(Keyword::allChildrenOfKey('banner_address')->pluck('name', 'key')->toArray())
->itemSchema(amis()->Tag()->label('${item}')->color(Admin::setting()->get('system_theme_setting')['theme_color'] ?? '#1677ff')),
amis()->TableColumn('sort', __('admin.ads.sort')),
amis()->TableColumn('sort', __('admin.ads.sort'))->quickEdit(
amis()->NumberControl()->min(0)->saveImmediately(true)
),
amis()->TableColumn('resource', __('admin.ads.resource'))->type('image')->height('50px')->width('150px')->enlargeAble(true),
amis()->TableColumn('remark', __('admin.ads.remark')),
amis()->TableColumn('published_at', __('admin.ads.published_at'))->remark(__('admin.ads.published_at_remark')),

View File

@ -26,7 +26,7 @@ class Storage implements CastsAttributes
*/
public function get($model, $key, $value, $attributes)
{
return $value ? (Str::startsWith($value, ['http://', 'https://']) ? $value : StorageFacades::disk(Admin::config('admin.upload.disk'))->url($value)).'?time='.time() : '';
return $value ? (Str::startsWith($value, ['http://', 'https://']) ? $value : StorageFacades::disk(Admin::config('admin.upload.disk'))->url($value)) : '';
}
/**

View File

@ -27,7 +27,6 @@ class Ad extends Model
'updated_at' => 'datetime',
'published_at' => 'datetime',
'is_enable' => 'boolean',
'resource' => Storage::class,
'jump_config' => 'array',
];

View File

@ -26,7 +26,6 @@ class Article extends Model
'published_at' => 'datetime:Y-m-d H:i:s',
'is_enable' => 'boolean',
'is_recommend' => 'boolean',
'cover' => Storage::class,
'appendixes' => 'array',
];

View File

@ -32,7 +32,9 @@ class AdService extends BaseService
$data['published_at'] = now();
}
$data['resource'] = $this->saveImage('resource', 'ads/resource')[0];
if(isset($data['resource'])){
$data['resource'] = $this->saveImage('resource', 'ads/resource')[0];
}
//处理跳转配置
$jumpType = Arr::get($data, 'jump_type');

View File

@ -57,6 +57,7 @@ class ArticleService extends BaseService
if ($isEnable && empty($publishedAt) && empty($model->published_at)) {
$data['published_at'] = now();
}
if(isset($data['cover'])){
$data['cover'] = $this->saveImage('cover', 'articles/cover')[0];
}

View File

@ -70,7 +70,7 @@ trait UploadTrait
}
/**
* 表单提交时,转存实际目录,并保留上传时文件名称;
* 表单提交时,转存实际目录,并保留上传时文件名称;文件保存全路径
*/
public function saveFile($field = 'file', $path)
{
@ -82,24 +82,38 @@ trait UploadTrait
$fileArr = [];
//判断是否多个文件;
if(isset($file['name'])){
if(is_string($file) || isset($file['id'])){
$files = [$file];
}else{
$files =$file;
$files = $file;
}
foreach($files as $file){
if(is_array($file)){
if(isset($file['name'])){
$filePath = $path.'/'.$file['name'];
Storage::disk(Admin::config('admin.upload.disk'))->move($file['value'], $filePath);
$fileArr[] = $filePath;
if($files){
foreach($files as $file){
if(is_array($file) && isset($file['state'])){
switch($file['state']){
case 'init':
if(strpos($file['value'], 'temporary') !== false){
$filePath = $path.'/'.$file['name'];
Storage::disk(Admin::config('admin.upload.disk'))->move($file['value'], $filePath);
$fileArr[] = Storage::disk(Admin::config('admin.upload.disk'))->url($filePath);
}else{
$fileArr[] = $file['value'];
}
break;
case 'uploaded':
if(isset($file['name'])){
$filePath = $path.'/'.$file['name'];
Storage::disk(Admin::config('admin.upload.disk'))->move($file['value'], $filePath);
$fileArr[] = Storage::disk(Admin::config('admin.upload.disk'))->url($filePath);
}
break;
}
}else{
$fileArr[] = $file;
}
}else{
$fileArr[] = $file;
}
}
return $fileArr;
}
}