UpFiles.php 15.5 KB
<?php
namespace app\admin\controller;
require '../vendor/Qiniu/autoload.php';
use think\Db;
use think\Compression;
use think\Request;
use think\Controller;
use think\facade\Env;
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;
class UpFiles extends Common
{
    public function upload(){
        // 获取上传文件表单字段名
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件
        $file = request()->file($fileKey['0']);
        // 移动到框架应用根目录/public/uploads/ 目录下

        $info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move('uploads');
        if($info){
            $result['code'] = 1;
            $result['info'] = '图片上传成功!';
            $path=str_replace('\\','/',$info->getSaveName());
            $result['url'] = '/uploads/'. $path;
            return $result;
        }else{
            // 上传失败获取错误信息

            $result['code'] =0;
            $result['info'] =  $file->getError();
            $result['url'] = '';
            return $result;
        }
    }
    public function qncloud(){
        // 获取上传文件表单字段名
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件
        $file = request()->file($fileKey['0']);
        $obj = $file->getInfo();
        $rs = array('code' => 0, 'url' => '');
        $tmpName = $obj['tmp_name'];
        $name = md5($obj['name'] . $_SERVER['REQUEST_TIME']);
        $ext = strrchr($obj['name'], '.');
        $uploadFolder = sprintf('%s/uploads/temp/',$_SERVER['DOCUMENT_ROOT']);
        if (!is_dir($uploadFolder)) {
            mkdir($uploadFolder);
            chmod($uploadFolder,0777);
        }
        $imgPath = $uploadFolder .  $name . $ext;
        //移动到临时目录
        if (move_uploaded_file($tmpName, $imgPath)) {
            $accessKey = 'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7';
            $secretKey = 'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs';
            $auth = new Auth($accessKey, $secretKey);
            $bucket = 'colorcun-pc';
            $key = $obj['name'];
            // 生成上传Token
            $token = $auth->uploadToken($bucket);
            // 构建 UploadManager 对象
            $uploadMgr = new UploadManager();
            $backUrl = "libpc.colorcun.com"; //返回图片在七牛的路径
            $image = new Compression($imgPath);
            $imgPath = $image->getThumb();
            list($ret, $err) = $uploadMgr->putFile($token,$key,$imgPath);  //缩略图
            // 获取视频的时长
            // 第一步先获取到到的是关于视频所有信息的json字符串
            //$shichang = file_get_contents('http://'.WAILIAN.$key.'?avinfo');
            // 第二部转化为对象
            //$shi =json_decode($shichang);
            // 第三部从中取出视频的时长
            //$chang = $shi->format->duration;
            // 获取封面
            //$path ='http://'.WAILIAN.$ret['key'];

            /*$data = [
                'path' => $path,
                'pic' =>$vpic,
            ];
            $result = Db::name('image')->insert($data);
            // dump(Db::getLast);
            if (!$result) {
                return '失败';
            } else {
                return '成功';
            }*/
            $rs['url'] = $backUrl."/".$key;
        }
        if($rs['url']){
            //上传成功之后删除服务器文件
            $this->deldir($uploadFolder);
            $result['code'] = 1;
            $result['info'] = '图片上传成功!';
            $path=str_replace('\\','/',$rs['url']);
            $result['url'] = $path;
            $key = substr($key,0,strrpos($key,"."));
            $result['picname'] = $key;
            return $result;
        }else{
            // 上传失败获取错误信息
            $result['code'] =0;
            $result['info'] =  $file->getError();
            $result['url'] = '';
            return $result;
        }
    }
    //传到共有七牛存储库
    public function uploadQn(){
        // 获取上传文件表单字段名
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件
        $file = request()->file($fileKey['0']);
        $obj = $file->getInfo();
        $rs = array('code' => 0, 'url' => '');
        $tmpName = $obj['tmp_name'];
        $name = md5($obj['name'] . $_SERVER['REQUEST_TIME']);
        $ext = strrchr($obj['name'], '.');
        $uploadFolder = sprintf('%s/uploads/temp/',$_SERVER['DOCUMENT_ROOT']);
        if (!is_dir($uploadFolder)) {
            mkdir($uploadFolder);
            chmod($uploadFolder,0777);
        }
        $imgPath = $uploadFolder .  $name . $ext;
        //移动到临时目录
        if (move_uploaded_file($tmpName, $imgPath)) {
            $accessKey = 'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7';
            $secretKey = 'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs';
            $auth = new Auth($accessKey, $secretKey);
            $bucket = 'colorcun-attr';
            $key = date('YmdHis',time()).'_'.$name . $ext; //七牛云存储名称
            // 生成上传Token
            $token = $auth->uploadToken($bucket);
            // 构建 UploadManager 对象
            $uploadMgr = new UploadManager();
            $backUrl = "http://qn.colorcun.com"; //返回图片在七牛的路径
            //压缩处理
            //$image = new Compression($imgPath);
            //$imgPath = $image->getThumb();
            list($ret, $err) = $uploadMgr->putFile($token,$key,$imgPath);
            $rs['url'] = $backUrl."/".$key;
        }
        if($rs['url']){
            //上传成功之后删除服务器文件
            $this->deldir($uploadFolder);
            $result['code'] = 1;
            $result['info'] = '图片上传成功!';
            $path=str_replace('\\','/',$rs['url']);
            $result['url'] = $path;
            $key = substr($key,0,strrpos($key,"."));
            $result['picname'] = $key;
            return $result;
        }else{
            // 上传失败获取错误信息
            $result['code'] =0;
            $result['info'] =  $file->getError();
            $result['url'] = '';
            return $result;
        }
    }


    //传到共有七牛存储库
    public function pinglunuploadQn(){
        // 获取上传文件表单字段名
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件
        $file = request()->file($fileKey['0']);
        $obj = $file->getInfo();
        $rs = array('code' => 0, 'url' => '');
        $tmpName = $obj['tmp_name'];
        $name = md5($obj['name'] . $_SERVER['REQUEST_TIME']);
        $ext = strrchr($obj['name'], '.');
        $uploadFolder = sprintf('%s/uploads/temp/',$_SERVER['DOCUMENT_ROOT']);
        if (!is_dir($uploadFolder)) {
            mkdir($uploadFolder);
            chmod($uploadFolder,0777);
        }
        $imgPath = $uploadFolder .  $name . $ext;
        //移动到临时目录
        if (move_uploaded_file($tmpName, $imgPath)) {
            $accessKey = 'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7';
            $secretKey = 'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs';
            $auth = new Auth($accessKey, $secretKey);
            $bucket = 'colorcun-attr';
            $key = "pinglun/images/".$name . $ext; //七牛云存储名称
            // 生成上传Token
            $token = $auth->uploadToken($bucket);
            // 构建 UploadManager 对象
            $uploadMgr = new UploadManager();
            $backUrl = "http://nosqn.colorcun.com"; //返回图片在七牛的路径
            //压缩处理
            //$image = new Compression($imgPath);
            //$imgPath = $image->getThumb();
            list($ret, $err) = $uploadMgr->putFile($token,$key,$imgPath);
            $rs['url'] = $backUrl."/".$key;
        }
        if($rs['url']){
            //上传成功之后删除服务器文件
            $this->deldir($uploadFolder);
            $result['code'] = 1;
            $result['info'] = '图片上传成功!';
            $result['picname'] = $key;
            return $result;
        }else{
            // 上传失败获取错误信息
            $result['code'] =0;
            $result['info'] =  $file->getError();
            $result['url'] = '';
            return $result;
        }
    }

    //菜品库
    public function vegetabledata(){
        // 获取上传文件表单字段名
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件
        $file = request()->file($fileKey['0']);
        $obj = $file->getInfo();
        $rs = array('code' => 0, 'url' => '');
        $tmpName = $obj['tmp_name'];
        $name = md5($obj['name'] . $_SERVER['REQUEST_TIME']);
        $ext = strrchr($obj['name'], '.');
        $uploadFolder = sprintf('%s/uploads/temp/',$_SERVER['DOCUMENT_ROOT']);
        if (!is_dir($uploadFolder)) {
            mkdir($uploadFolder);
            chmod($uploadFolder,0777);
        }
        $imgPath = $uploadFolder .  $name . $ext;
        //移动到临时目录
        if (move_uploaded_file($tmpName, $imgPath)) {
            $accessKey = 'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7';
            $secretKey = 'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs';
            $auth = new Auth($accessKey, $secretKey);
            $bucket = 'vegetable-data';
            $key = $obj['name'];
            // 生成上传Token
            $token = $auth->uploadToken($bucket);
            // 构建 UploadManager 对象
            $uploadMgr = new UploadManager();
            $backUrl = "lib.colorcun.com"; //返回图片在七牛的路径
            $image = new Compression($imgPath);
            $imgPath = $image->getThumb();
            list($ret, $err) = $uploadMgr->putFile($token,$key,$imgPath);  //缩略图
            $rs['url'] = $backUrl."/".$key;
        }
        if($rs['url']){
            //上传成功之后删除服务器文件
            $this->deldir($uploadFolder);
            $result['code'] = 1;
            $result['info'] = '图片上传成功!';
            $path=str_replace('\\','/',$rs['url']);
            $result['url'] = $path;
            $key = substr($key,0,strrpos($key,"."));
            $result['picname'] = $key;
            return $result;
        }else{
            // 上传失败获取错误信息
            $result['code'] =0;
            $result['info'] =  $file->getError();
            $result['url'] = '';
            return $result;
        }
    }
    public function deldir($dirName) {
        array_map('unlink', glob($dirName."*.*"));
    }

    public function file(){
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file($fileKey['0']);
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['ext' => 'apk,zip,jar,rar,pdf,swf,ppt,psd,ttf,txt,xls,doc,docx'])->move('uploads');
        if($info){
            $result['code'] = 0;
            $result['info'] = '文件上传成功!';
            $path=str_replace('\\','/',$info->getSaveName());
            $result['url'] = '/uploads/'. $path;
            $result['ext'] = $info->getExtension();
            $result['size'] = byte_format($info->getSize(),2);
            return $result;
        }else{
            // 上传失败获取错误信息
            $result['code'] =1;
            $result['info'] = '文件上传失败!';
            $result['url'] = '';
            return $result;
        }
    }
    public function pic(){
        // 获取上传文件表单字段名
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件
        $file = request()->file($fileKey['0']);
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move(Env::get('root_path') . 'public/uploads');
        if($info){
            $result['code'] = 1;
            $result['info'] = '图片上传成功!';
            $path=str_replace('\\','/',$info->getSaveName());
            $result['url'] = '/uploads/'. $path;
            return json_encode($result,true);
        }else{
            // 上传失败获取错误信息
            $result['code'] =0;
            $result['info'] = '图片上传失败!';
            $result['url'] = '';
            return json_encode($result,true);
        }
    }
    //编辑器图片上传
    public function editUpload(){
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('file');
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move(Env::get('root_path') . 'public/uploads');
        if($info){
            $result['code'] = 0;
            $result['msg'] = '图片上传成功!';
            $path=str_replace('\\','/',$info->getSaveName());
            $result['data']['src'] = '/uploads/'. $path;
            $result['data']['title'] = $path;
            return json_encode($result,true);
        }else{
            // 上传失败获取错误信息
            $result['code'] =1;
            $result['msg'] = '图片上传失败!';
            $result['data'] = '';
            return json_encode($result,true);
        }
    }
    //多图上传
    public function upImages(){
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件
        $file = request()->file($fileKey['0']);
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move(Env::get('root_path') . 'public/uploads');
        if($info){
            $result['code'] = 0;
            $result['msg'] = '图片上传成功!';
            $path=str_replace('\\','/',$info->getSaveName());
            $result["src"] = '/uploads/'. $path;
            return $result;
        }else{
            // 上传失败获取错误信息
            $result['code'] =1;
            $result['msg'] = '图片上传失败!';
            return $result;
        }
    }
    //获取七牛存储信息
    public function getBuildBatchStat(){

        //获取单文件
        /*$accessKey = 'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7';
        $secretKey = 'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs';
        $bucket = 'colorcun-pc';
        $key = "测试.jpg";
        $auth = new Auth($accessKey, $secretKey);
        $config = new \Qiniu\Config();
        $bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
        list($fileInfo, $err) = $bucketManager->stat($bucket, $key);
        if ($err) {
            print_r($err);
        } else {
            print_r($fileInfo);
        }*/

        //获取多文件
        $accessKey = 'uva-aaonM8dukeR6phc9yuPBrOXk9brrNW_PxLD7';
        $secretKey = 'oZMMVN6phk49lG0J1xwmi1Ju0ETT15EnAEWcU9Cs';
        $bucket = 'colorcun-pc';
        $auth = new Auth($accessKey, $secretKey);
        $bucketManager = new BucketManager($auth);
        // 要列取文件的公共前缀
        $prefix = 'aa';
        // 上次列举返回的位置标记,作为本次列举的起点信息。
        $marker = '';
        // 本次列举的条目数
        $limit = 100;
        $delimiter = '/';
        // 列举文件
        list($ret, $err) = $bucketManager->listFiles($bucket, $prefix, $marker, $limit, $delimiter);
        if ($err !== null) {
            echo "\n====> list file err: \n";
            var_dump($err);
        } else {
            if (array_key_exists('marker', $ret)) {
                echo "Marker:" . $ret["marker"] . "\n";
            }
            echo "\nList Iterms====>\n";
            print_r($ret['items']);
        }
        
    }
}