| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | <?php/** *   *  @author  Mike <m@9026.com> *  @version    1.0 *  @date 2015年10月30日 * */namespace App\Http\Controllers\Admin\Base;use App\Http\Controllers\Admin\Controller;use App\Services\Base\Attachment;use Request;//use App\Utils\OSS\Alioss;//use App\Utils\DirUtil;class ToolController extends Controller{    private $_dirUtil;    private $_aliossService;        public function __construct() {        if( !$this->_dirUtil ) $this->_dirUtil = new DirUtil();        if( !$this->_aliossService ) $this->_aliossService = new Alioss();    }        /**     * 专题上传     */    function specialupload() {        $attachmentObj = new Attachment();        $uploadControl = $attachmentObj -> initupload([            'file_types' => 'php|htm|html',        ], [            'position'   => 'special',            'folder'     => 'at',        ]);                //遍历专题目录        $data = array();        $dirList = $this->_dirUtil->dirTraverse(public_path('resources/views/web/special'));        if(!empty($dirList)){            foreach ($dirList AS $key => $val){                $data[$key]['name'] = trim(iconv("GBK", "UTF-8//IGNORE", substr(strrchr($val, '/'), 1, 50))) . '.html';                $data[$key]['url'] = 'http://' . config('sys.sys_www_domain') . '/at/' . $data[$key]['name'];            }        }        view()->share("uploadControl", $uploadControl);        return view('admin.base.tool.specialupload', compact('data'));    }        /**     * 阿里云上传     */    function alimanage()    {                $ok = $this->_aliossService->doesObjectExist("a/bg.jpg");                $img_path = config('sys.sys_images_url');        $file_path = config('sys.sys_file_url');        $folder = trim(Request::input('folder'));        $dirname = trim(Request::input('dirname'));        //创建目录        if(Request::method() == 'POST'){            if($dirname){                $this->_createDir($dirname,  $folder);            }else{                $this->showWarning('目录名不能为空!');            }        }                //构建路径        $folderPath = '/<a href="' . U( 'Base/Tool/alimanage') . '?folder=">根目录</a>/';        if($folder){            $dirPath = '';            $dirs = array_filter(explode('/', $folder));            foreach ($dirs AS $dir){                $dirPath .= $dir . '/';                $folderPath .= '<a href="' . U( 'Base/Tool/alimanage') . '?folder=' . $dirPath . '">'. $dir .'</a>/';            }        }        $itemObj = $this->_aliossService->listObjects(['prefix'=>$folder]);        $item['obj'] = $itemObj->getObjectList(); // 文件列表        $item['dir'] = $itemObj->getPrefixList(); // 目录列表               $uploadControl = $this->_uploadControl('');                return view('admin.base.tool.alimanage', compact('item', 'img_path', 'file_path', 'folderPath', 'uploadControl'));    }        private function _createDir($dirname, $folder)    {        if(strpos($dirname, '/') === false && preg_match('/^([0-9a-zA-Z\_]+)$/is', $dirname)){            $newdir = $folder . $dirname;            $code = $this->_aliossService->createObjectDir($newdir);            if($code == null){                $this->showMessage('目录创建成功!', U( 'Base/Tool/alimanage') . '?folder=' . $newdir . '/');            }else{                $this->showWarning('目录创建失败!');            }        }else{            $this->showWarning('非法的目录名!');        }    }        /**     * 初始化文件上传组件     */    private function _uploadControl($folder, $position = 'ali')    {        //初始化文件上传组件        $attachmentObj = new Attachment();        return $attachmentObj -> initupload([                'file_types' => 'jpg|jpeg|gif|png|bmp',        ], [                'position'   => $position,                'folder'     => $folder,        ]);    }    } 
 |