123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- <?php
- /**
- * lemocms
- * ============================================================================
- * 版权所有 2018-2027 lemocms,并保留所有权利。
- * 网站地址: https://www.lemocms.com
- * ----------------------------------------------------------------------------
- * 采用最新Thinkphp6实现
- * ============================================================================
- * Author: yuege
- * Date: 2019/8/2
- */
- namespace app\admin\controller;
- use app\common\controller\Backend;
- use FFMpeg\FFMpeg;
- use think\facade\Config;
- use think\facade\Env;
- use think\facade\Request;
- use lemo\helper\DataHelper;
- class Uploads {
- //上传验证规则
- protected $uploadValidate = [
- 'image' => 'filesize:102400|fileExt:jpg,png,gif,jpeg,rar,zip,avi,mp4,rmvb,3gp,flv,mp3,txt,doc,xls,ppt,pdf,xls,docx,xlsx,doc,wmv'
- ];
- protected $imageValidate = [
- 'image' => 'filesize:10240|fileExt:jpg,png,gif,jpeg,bmp,svg,wmv'
- ];
- protected $videoValidate = [
- 'file' => 'filesize:10240|avi,rmvb,3gp,flv,mp4,wmv'
- ];
- protected $voiceValidate = [
- 'file' => 'filesize:2048|mp3,wma,wav,amr,wmv'
- ];
- public function initialize()
- {
- $fileExt = getConfigByCode('upload_file_type');
- $filemax = getConfigByCode('upload_file_max')*1024;
- $this->uploadValidate = ['image'=>
- 'filesize'.$filemax.'|'.$fileExt,
- ];
- // parent::initialize(); // TODO: Change the autogenerated stub
- }
- /**
- * 将OBJ或者对象转为ARRAY
- * @param string $xml
- * @return array|false
- */
- public static function objToArray($object)
- {
- $array = array();
- if (is_object($object)) {
- foreach ($object as $key => $value) {
- $array[$key] = $value;
- }
- } else {
- $array = $object;
- }
- return $array;
- }
- /**
- * 文件上传
- * @return false|string
- */
- public function Uploads(){
- //获取上传文件表单字段名
- $fileKey = array_keys(request()->file());
- for ($i = 0; $i < count($fileKey); $i++) {
- //获取表单上传文件
- $file = request()->file($fileKey[$i]);
- try {
- validate($this->uploadValidate)->check(self::objToArray($file));
- $savename = \think\facade\Filesystem::disk('public')->putFile('uploads', $file);
- $savename= str_replace('\\', "/", $savename);
- $path[] = '/storage/' . $savename;
- } catch (\think\exception\ValidateException $e) {
- $path = '';
- $error = $e->getMessage();
- }
- }
- if (!empty($path)) {
- $result['code'] = 1;
- //分辨是否截图上传,截图上传只能上传一个,非截图上传可以上传多个
- if (Request::param('responseType') == 'json') {
- $result["url"] = $path[0];
- } else {
- $result["url"] = $path;
- }
- $result['msg'] = lang('upload success');
- return $result;
- } else {
- //上传失败获取错误信息
- $result['url'] = '';
- $result['msg'] = $error;
- $result['code'] = 0;
- return $result;
- }
- }
- /**
- * 文件上传
- * @return false|string
- */
- public function imageUploads(){
- //获取上传文件表单字段名
- $fileKey = array_keys(request()->file());
- for ($i = 0; $i < count($fileKey); $i++) {
- //获取表单上传文件
- $file = request()->file($fileKey[$i]);
- try {
- validate($this->imageValidate)
- ->check(self::objToArray($file));
- $savename = \think\facade\Filesystem::disk('public')->putFile('uploads', $file);
- $savename= str_replace('\\', "/", $savename);
- $path[] = '/storage/' . $savename;
- } catch (\think\exception\ValidateException $e) {
- $path = '';
- $error = $e->getMessage();
- }
- }
- if (!empty($path)) {
- $result['code'] = 1;
- //分辨是否截图上传,截图上传只能上传一个,非截图上传可以上传多个
- if (Request::param('responseType') == 'json') {
- $result["url"] = $path[0];
- } else {
- $result["url"] = $path;
- }
- $result['msg'] =lang('upload success');
- return $result;
- } else {
- //上传失败获取错误信息
- $result['url'] = '';
- $result['msg'] = $error;
- $result['code'] = 0;
- return $result;
- }
- }
- public function text()
- {
- }
- /**
- * 文件上传
- * @return false|string
- */
- public function videoUploads(){
- // ini_set("upload_max_filesize","10M");//即允许上传文件大小的最大值
- // ini_set("post_max_size","10M");//指通过表单POST给PHP的所能接收的最大值
- // ini_set("memory_limit","10M");//;每个PHP页面所吃掉的最大内存
- // ini_set("max_execution_time","3600");//每个PHP页面运行的最大时间值(秒)
- // ini_set("max_input_time","3600");//每个PHP页面接收数据所需的最大时间(秒)
- //获取上传文件表单字段名
- $fileKey = array_keys(request()->file());
- for ($i = 0; $i < count($fileKey); $i++) {
- //获取表单上传文件
- $file = request()->file($fileKey[$i]);
- try {
- validate($this->videoValidate)
- ->check(self::objToArray($file));
- $savename = \think\facade\Filesystem::disk('public')->putFile('uploads', $file);
- $savename= str_replace('\\', "/", $savename);
- $path[] = '/storage/' . $savename;
- } catch (\think\exception\ValidateException $e) {
- $path = '';
- $error = $e->getMessage();
- }
- }
- if (!empty($path)) {
- $result['code'] = 1;
- //分辨是否截图上传,截图上传只能上传一个,非截图上传可以上传多个
- if (Request::param('responseType') == 'json') {
- $result["url"] = $path[0];
- } else {
- $result["url"] = $path;
- }
- $result['msg'] = lang('upload success');
- return $result;
- } else {
- //上传失败获取错误信息
- $result['url'] = '';
- $result['msg'] = $error;
- $result['code'] = 0;
- return $result;
- }
- }
- /**
- * 文件上传
- * @return false|string
- */
- public function vioceUploads(){
- //获取上传文件表单字段名
- $fileKey = array_keys(request()->file());
- for ($i = 0; $i < count($fileKey); $i++) {
- //获取表单上传文件
- $file = request()->file($fileKey[$i]);
- try {
- validate($this->voiceValidate)
- ->check(self::objToArray($file));
- $savename = \think\facade\Filesystem::disk('public')->putFile('uploads', $file);
- $savename= str_replace('\\', "/", $savename);
- $path[] = '/storage/' . $savename;
- } catch (\think\exception\ValidateException $e) {
- $path = '';
- $error = $e->getMessage();
- }
- }
- if (!empty($path)) {
- $result['code'] = 1;
- //分辨是否截图上传,截图上传只能上传一个,非截图上传可以上传多个
- if (Request::param('responseType') == 'json') {
- $result["url"] = $path[0];
- } else {
- $result["url"] = $path;
- }
- $result['msg'] = lang('upload success');
- return $result;
- } else {
- //上传失败获取错误信息
- $result['url'] = '';
- $result['msg'] = $error;
- $result['code'] = 0;
- return $result;
- }
- }
- }
|