building-sign/app/widget/manager/Upload.php

112 lines
3.5 KiB
PHP
Raw Normal View History

2023-01-09 08:41:41 +00:00
<?php
namespace app\widget\manager;
use Exception;
use think\facade\View;
class Upload
{
//视频
public function video($src = '', $append = '')
{
$data = [
'src' => $src,
'append' => $append
];
return View::assign($data)->fetch('manager/widget/video');
}
//图片layui自带上传控件,若同一页面内徐亚加载多层本上传控件则需要传不同的$append来区分控件ID
public function image($src = '', $append = '', $imgSize = 0, $thumb = 0, $fullName = '')
{
$data = [
'src' => $src,
'append' => !empty($append) ? $fullName : '',//预防只传了fullName
'imgSize' => $imgSize,
'fieldName' => $fullName ?: 'img'.$append,//最终后端接收数据的name
'thumb' => $thumb,
];
return View::assign($data)->fetch('manager/widget/image');
}
//上传文件,目前在文章中添加附件
public function files($files = [], $num = 10, $append = '')
{
if (!empty($files) && $files == 'null') {
$files = [];
}
$data = [
'files' => $files,
'append' => $append,
'num' => $num,
];
return View::assign($data)->fetch('manager/widget/files');
}
/**
* 水印图片上传
* milo
* 2018-01-13
*/
public function mark($src = '')
{
return View::assign(['src' => $src])->fetch('manager/widget/mark');
}
/**
* layui组图上传
* milo
*/
public function multi_bak($imgs = [], $num = 10, $append = '', $imgSize = '')
{
if (!empty($imgs) && $imgs == 'null') {
$imgs = [];
}
$data = [
'imgs' => $imgs,
'append' => $append,
'imgSize' => $imgSize,
'num' => $num
];
return View::assign($data)->fetch('manager/widget/multi_bak');
}
/**
* @param array $imgs 需要展示的图片列表
* @param int $num 最大数量
* @param string $append 追加名称,用于多组图片时区别名称 $fullName存在时不生效
* @param string $imgSize 图片建议尺寸
* @param string $fullName 组图name 传递到后台程序的名字 如image 后台则收到image的数组
* @param array|bool $fields 图片额外树形字段默认有alt link desc time 若此处设置后将替换默认值。为false则不填写 格式如下
* ['alt' => 'alt', 'desc' => '描述,选填', 'link' => '链接,选填']
* @return string
* @throws Exception
*/
public function multi(array $imgs = [], int $num = 10, string $append = 'img', string $imgSize = '', string $fullName = '', $fields = []): string
{
if (!empty($imgs) && $imgs == 'null') {
$imgs = [];
}
if (empty($fields)) {
$fields = $fields === false ? [] : [
'alt' => 'alt',
'desc' => '描述',
'link' => '链接,选填',
'time' => '日期,选填',
];
}
$data = [
'imgs' => $imgs,
'append' => $append ?: $fullName,//预防只传了fullName
'imgSize' => $imgSize,
'fields' => $fields,
'fieldName' => $fullName ?: 'img'.$append,//最终后端接收数据的name
'num' => $num
];
return View::assign($data)->fetch('manager/widget/multi');
}
}