146 lines
4.4 KiB
PHP
Executable File
146 lines
4.4 KiB
PHP
Executable File
<?php
|
||
|
||
namespace app\widget\manager;
|
||
|
||
use think\facade\View;
|
||
|
||
class Upload
|
||
{
|
||
protected $uploadMaxSize = '2M';
|
||
protected $data = [];
|
||
|
||
public function __construct()
|
||
{
|
||
$uploadMaxSize = ini_get('post_max_size');
|
||
if (!empty($uploadMaxSize)) {
|
||
$this->uploadMaxSize = $uploadMaxSize;
|
||
}
|
||
$this->data['post_max_size'] = $this->uploadMaxSize;
|
||
}
|
||
|
||
protected function showView(string $template = '')
|
||
{
|
||
return View::assign($this->data)->fetch($template);
|
||
}
|
||
|
||
//视频
|
||
public function file($src = '', $append = '', $fileSize = '')
|
||
{
|
||
if (empty($fileSize)) {
|
||
$fileSize = '文件大小限制 '.ini_get('upload_max_filesize');
|
||
}
|
||
|
||
$this->data['src'] = $src;
|
||
$this->data['append'] = $append;
|
||
$this->data['fileSize'] = $fileSize;
|
||
return $this->showView('manager/widget/file');
|
||
}
|
||
|
||
//视频
|
||
public function video($src = '', $append = '', $videoSize = '')
|
||
{
|
||
if (empty($videoSize)) {
|
||
$videoSize = '文件大小限制 '.ini_get('upload_max_filesize');
|
||
}
|
||
|
||
$this->data['src'] = $src;
|
||
$this->data['append'] = $append;
|
||
$this->data['videoSize'] = $videoSize;
|
||
return $this->showView('manager/widget/video');
|
||
}
|
||
|
||
//图片(layui自带上传控件),若同一页面内徐亚加载多层本上传控件则需要传不同的$append来区分控件ID
|
||
public function image($src = '', $append = '', $imgSize = 0, $thumb = 0, $className = '', $midStr = '')
|
||
{
|
||
$this->data['src'] = $src;
|
||
$this->data['append'] = $append;
|
||
$this->data['imgSize'] = $imgSize;
|
||
$this->data['thumb'] = $thumb;
|
||
$this->data['className'] = $className;
|
||
$this->data['midStr'] = $midStr;
|
||
return $this->showView('manager/widget/image');
|
||
}
|
||
|
||
//上传文件,目前在文章中添加附件
|
||
public function files($files = [], $num = 10, $append = '')
|
||
{
|
||
if (!empty($files) && $files == 'null') {
|
||
$files = [];
|
||
}
|
||
$this->data['files'] = $files;
|
||
$this->data['append'] = $append;
|
||
$this->data['num'] = $num;
|
||
return $this->showView('manager/widget/files');
|
||
}
|
||
|
||
/**
|
||
* 水印图片上传
|
||
* milo
|
||
* 2018-01-13
|
||
*/
|
||
public function mark($src = '')
|
||
{
|
||
$this->data['src'] = $src;
|
||
return $this->showView('manager/widget/mark');
|
||
}
|
||
|
||
/**
|
||
* layui组图上传
|
||
* milo
|
||
* @param array|bool $fields 图片额外树形字段,默认有alt link desc time 若此处设置后将替换默认值。为false则不填写 格式如下
|
||
* ['alt' => 'alt', 'desc' => '描述,选填', 'link' => '链接,选填']
|
||
*/
|
||
public function multi($imgs = [], $num = 10, $append = '', $imgSize = '', $fields = [])
|
||
{
|
||
if (!empty($imgs) && $imgs == 'null') {
|
||
$imgs = [];
|
||
}
|
||
|
||
if (empty($fields)) {
|
||
$fields = $fields === false ? [] : [
|
||
'title' => '标题',
|
||
'desc' => '描述',
|
||
'alt' => 'alt',
|
||
'link' => '链接,选填',
|
||
'time' => '日期,选填',
|
||
];
|
||
}
|
||
|
||
$this->data['imgs'] = $imgs;
|
||
$this->data['append'] = $append;
|
||
$this->data['imgSize'] = $imgSize;
|
||
$this->data['num'] = $num;
|
||
$this->data['fields'] = $fields;
|
||
$this->data['fieldsJson'] = json_encode($fields, JSON_UNESCAPED_UNICODE);
|
||
return $this->showView('manager/widget/multi');
|
||
}
|
||
|
||
/**
|
||
* 音频组上传
|
||
*/
|
||
public function multiAudio($audios = [], $num = 10, $append = '')
|
||
{
|
||
if (!empty($audios) && $audios == 'null') {
|
||
$audios = [];
|
||
}
|
||
$this->data['audios'] = $audios;
|
||
$this->data['append'] = $append;
|
||
$this->data['num'] = $num;
|
||
return $this->showView('manager/widget/multi_audio');
|
||
}
|
||
|
||
/**
|
||
* 视频组上传
|
||
*/
|
||
public function multiVideo($videos = [], $num = 10, $append = '')
|
||
{
|
||
if (!empty($videos) && $videos == 'null') {
|
||
$videos = [];
|
||
}
|
||
$this->data['videos'] = $videos;
|
||
$this->data['append'] = $append;
|
||
$this->data['num'] = $num;
|
||
return $this->showView('manager/widget/multi_video');
|
||
}
|
||
}
|