* @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 = '/根目录/';
if($folder){
$dirPath = '';
$dirs = array_filter(explode('/', $folder));
foreach ($dirs AS $dir){
$dirPath .= $dir . '/';
$folderPath .= ''. $dir .'/';
}
}
$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,
]);
}
}