<?php
declare(strict_types=1);
namespace app\controller\sys;
use think\facade\Config;
use think\file\UploadedFile;
use think\exception\ValidateException;
use app\utils\ReUtils;
use app\utils\FileUtils;
use think\facade\Env;
/**
* upload文件管理
*
* @version 0.0.0
* @author by huwhois
* @time 2017/11/27
*/
class FileManager extends Base
{
protected $modelName = 'FileManager';
public function uploadImage()
{
if ($this->app->request->isPost()) {
$file = $this->request->file('upload_file');
if ($file) {
try {
validate(
[
'file' => [
// 限制文件大小(单位b),这里限制为4M
'fileSize' => 4 * 1024 * 1024,
// 限制文件后缀,多个后缀以英文逗号分割
'fileExt' => 'jpg,png,gif,jpeg,webp,jfif'
]
],
[
'file.fileSize' => '文件太大',
'file.fileExt' => '不支持的文件后缀',
]
)->check(['file' => $file]);
$picture_url = Config::get('filesystem.disks.public.url') . '/';
$watermark = $this->request->has('watermark') ? intval($this->request->param('watermark')) : 1;
if ($watermark == 0) {
$savename = \think\facade\Filesystem::disk('public')->putFile('/', $file);
} else {
$source = str_replace("\\", '/', $this->app->getRootPath() . Env::get('watermark', 'public/static/images/watermark.png'));
if (!is_file($source)) {
$savename = \think\facade\Filesystem::disk('public')->putFile('/', $file);
} else {
$savename = $file->hashName();
$savepath = str_replace("\\", '/', Config::get('filesystem.disks.public.root') . DIRECTORY_SEPARATOR . $savename);
$dir = dirname($savepath);
if (!is_dir($dir)) {
mkdir($dir, 0755, true);
}
$image = \think\Image::open($file);
$image->water($source);
$image->save($savepath);
$image = null;
}
}
return ReUtils::result([
'filename' => $picture_url . str_replace("\\", '/', $savename)
], 0, '上传成功');
} catch (ValidateException $e) {
$this->error($e->getMessage());
}
}
}
}
/**
* 网络图片上传
*/
public function uploadUrlImg()
{
if ($this->request->isPost()) {
$url_file = $this->request->param('url_file');
$urlImgs = explode("\n", $url_file);
if (!empty($urlImgs)) {
try {
$filelist = [];
$url_path = Config::get('filesystem.disks.public.url');
foreach ($urlImgs as $urlImg) {
if ($urlImg) {
$savename = FileUtils::downloadUrlImg($urlImg);
$filelist[] = $url_path . '/' . $savename;
}
}
return ReUtils::result($filelist);
} catch (\think\exception\ValidateException $e) {
return ReUtils::error($e->getMessage());
}
} else {
return ReUtils::error('图片地址不能为空');
}
}
}
/**
* 附件上传
*/
public function uploadMoive()
{
$file = $this->request->file('upload_movie');
if ($file) {
try {
validate(
[
'file' => [
// 限制文件大小(单位b),这里限制为20M
'fileSize' => 20 * 1024 * 1024,
// 限制文件后缀,多个后缀以英文逗号分割
'fileExt' => 'mp4,flv,mpeg,avi'
]
],
[
'file.fileSize' => '文件太大',
'file.fileExt' => '不支持的文件后缀',
]
)->check(['file' => $file]);
$savename = \think\facade\Filesystem::disk('public')->putFile('/', $file);
$url_path = Config::get('filesystem.disks.public.url');
return ReUtils::result([
'filename' => $url_path . "/" . str_replace("\\", '/', $savename)
], 0, '上传成功');
} catch (ValidateException $e) {
return ReUtils::error($e->getMessage());
}
} else {
return ReUtils::error('视频不能为空');
}
}
/**
* 附件上传
*/
public function uploadFile()
{
$activepath = $this->request->has('activepath') ? $this->request->param('activepath') : '';
$files = $this->request->file('upload_file');
if ($files) {
try {
validate(
[
'file' => [
// 限制文件大小(单位b),这里限制为10M
'fileSize' => 10 * 1024 * 1024,
// 限制文件后缀,多个后缀以英文逗号分割
'fileExt' => 'jpg,png,gif,jpeg,webp,jfif,pdf,doc,docx,xls,xlsx,ppt,pptx,txt,zip'
]
],
[
'file.fileSize' => '文件太大',
'file.fileExt' => '不支持的文件后缀',
]
)->check(['file' => $files]);
$uploadFiles = [];
if (!is_array($files) && $files instanceof UploadedFile) {
$uploadFiles[] = $files;
} else {
$uploadFiles = $files;
}
$url = Config::get('filesystem.disks.public.url');
$filelist = [];
foreach ($uploadFiles as $file) {
$savename = \think\facade\Filesystem::disk('public')->putFile('/', $file);
$filename = $file->getOriginalName();
$filelist[] = [
'url' => $url . '/' . $savename,
'filename' => $filename
];
}
return ReUtils::result($filelist);
} catch (ValidateException $e) {
return ReUtils::error($e->getMessage());
}
} else {
return ReUtils::error('图片不能为空');
}
}
/**
* ckeditor 富文本编辑器上传图片
*/
public function ckeditorUploadImage()
{
if ($this->request->isPost()) {
$file = $this->request->file('upload');
if ($file) {
try {
validate(
[
'file' => [
// 限制文件大小(单位b),这里限制为4M
'fileSize' => 4 * 1024 * 1024,
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该项目是一款基于ThinkPHP6框架构建的信息网站源码,总计包含657个文件,其中HTML文件134个,PNG图片175个,GIF图片129个,PHP脚本102个,JavaScript文件33个,CSS样式31个,以及其他类型的文件如JPG、Gitignore、TTF、Map等。该系统采用HTML、PHP、JavaScript和CSS等多种编程语言进行开发,适用于构建功能完善的信息发布和管理平台。
资源推荐
资源详情
资源评论
收起资源包目录
基于ThinkPHP6框架的信息网站设计源码 (663个子文件)
H-ui.css 228KB
H-ui.min.css 171KB
saiyi.css 169KB
bootstrap.css 143KB
bootstrap.min.css 119KB
saiyi-h5.css 62KB
nav.css 41KB
aos.css 31KB
font-awesome.min.css 30KB
bootstrap-theme.css 25KB
bootstrap-theme.min.css 23KB
swiper.css 22KB
swiper.min.css 19KB
swiper.min.css 19KB
iconfont.css 16KB
iconfont.min.css 14KB
layer.css 14KB
H-ui.admin.css 7KB
H-ui.reset.css 3KB
H-ui.ie.css 3KB
login.css 3KB
style.css 2KB
H-ui.login.css 2KB
skin.css 1KB
skin.css 1KB
skin.css 1KB
skin.css 1KB
skin.css 1KB
skin.css 1KB
laypage.css 1KB
style.css 44B
.example.env 231B
iconfont.eot 132KB
glyphicons-halflings-regular.eot 20KB
dh_dt.gif 67KB
35.gif 13KB
71.gif 13KB
69.gif 10KB
loading.gif 8KB
18.gif 8KB
19.gif 8KB
11.gif 8KB
32.gif 7KB
78.gif 6KB
loading-0.gif 6KB
31.gif 6KB
99.gif 5KB
75.gif 5KB
85.gif 5KB
8.gif 5KB
29.gif 5KB
74.gif 5KB
5.gif 5KB
45.gif 4KB
33.gif 4KB
72.gif 4KB
0.gif 4KB
26.gif 4KB
loading-b.gif 4KB
7.gif 4KB
10.gif 4KB
76.gif 4KB
80.gif 4KB
49.gif 4KB
66.gif 3KB
205.gif 3KB
91.gif 3KB
9.gif 3KB
28.gif 3KB
70.gif 3KB
6.gif 3KB
68.gif 3KB
79.gif 3KB
22.gif 3KB
97.gif 3KB
56.gif 3KB
51.gif 3KB
27.gif 3KB
86.gif 3KB
41.gif 2KB
50.gif 2KB
25.gif 2KB
103.gif 2KB
84.gif 2KB
83.gif 2KB
24.gif 2KB
12.gif 2KB
89.gif 2KB
101.gif 2KB
106.gif 2KB
105.gif 2KB
34.gif 2KB
95.gif 2KB
203.gif 2KB
82.gif 2KB
4.gif 2KB
23.gif 2KB
21.gif 2KB
3.gif 2KB
14.gif 2KB
共 663 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
lly202406
- 粉丝: 3003
- 资源: 5525
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功