UpFiles.php 7.2 KB
<?php
namespace app\admin\controller;
require '../vendor/Qiniu/autoload.php';
use think\Db;
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('%suploads/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 = "pe9jzv1q9.bkt.clouddn.com"; //返回图片在七牛的路径
            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']){
            //上传成功之后删除服务器文件
            unlink($imgPath);
            $result['code'] = 1;
            $result['info'] = '图片上传成功!';
            $path=str_replace('\\','/',$rs['url']);
            $result['url'] = $path;
            return $result;
        }else{
            // 上传失败获取错误信息
            $result['code'] =0;
            $result['info'] =  $file->getError();
            $result['url'] = '';
            return $result;
        }
    }

    public function file(){
        $fileKey = array_keys(request()->file());
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file($fileKey['0']);
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['ext' => 'apk,zip,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;
        }
    }
}