thinkphp 用七牛云异步上传文件(前后端代码)

1、首先创建一个七牛云帐号,完成后,添加对象存储

2、创建成功后,右上角“密钥管理 查看秘钥,找到AK、SK;

3、打开thinkphp的配置文件,将此代码加入

'CONFIG_QINIU' => 
array (
    'accessKey' => '你的AK',
    'secretKey' => '你的SK',
    'domain' => '融合CDN域名',
    'bucket' => '存储文件的空间名称',
  ),

4、HTML页面代码

<tr style="height: 100px;">
              <th width="70">封面视频 </th>
              <td>
              	
				<button type="button" class="layui-btn" id="cover">
				     <i class="layui-icon">&#xe67c;</i>视频上传
				</button>&nbsp;&nbsp;
				<input type="text"  name="cover_file_name" value="" readonly="readonly" style="height: 30px; line-height: 30px;" />
				<input type="hidden" name="cover_file_url" value="" />
				&nbsp;&nbsp;
				<button type="button" onclick="cancel_1();" class="layui-btn layui-btn-warm">视频取消</button>
				<div>
					windows:仅允许上传 mp4视频,视频编码H264,文件大小不超过 6M。
			    </div>
									
			 </td>
</tr>

HTML 页面截图

5、上传文件JS代码

<!--- 封面视频  --->
<script type="text/javascript">
	
	  layui.use('upload', function(){
	  var upload = layui.upload;
	  //执行实例
	  var uploadInst = upload.render({
		    elem: '#cover', //绑定元素
		    exts: 'mp4',  // 允许上传的文件后缀
		    size: 1024*6,  // 文件大小,单位KB
		    accept: 'file', //普通文件
		    url: "{:U('AdminPage/uploadFile')}", //上传接口
		    choose: function(obj){
		    	// 选择文件回调
		    	var is_save = $('input[ name = cover_file_url]').val();
		    	if(is_save == ''){
		    		layer.load();
		    	}else{
		    		layer.msg('已存在视频,请先删除当前视频');
		    		return false;
		    	}
		    },
		    done: function(res){
		      //上传完毕回调
		      setTimeout(function(){
					  layer.closeAll('loading');
					}, 100);
		      if(res.success){
		      	 layer.alert(res.success, {icon: 6});
		         $('input[name = cover_file_name]').val(res.file_name);
		         $('input[name = cover_file_url]').val(res.file_url);
		         return false;
		      }else{
		      	layer.alert(res.error, {icon: 5});
		        return false;
		      }
		    }
	  });
	});

// 封面视频上传取消
	function cancel_1(){
		
  	   $('input[name = cover_file_name]').val('');
       $('input[name = cover_file_url]').val('');
       layer.msg('封面视频已取消');
       return false;
		  
	}

</script>

6、下载七牛云SDK包,更名为:Qiniu,并放在此处

7、后台控制 器代码

public function uploadFile(){
		
		vendor("Qiniu.autoload");
		$Qiniu_config = C(CONFIG_QINIU);

		$auth = new \Qiniu\Auth($Qiniu_config['accessKey'], $Qiniu_config['secretKey']);
		// 生成上传Token
		$token = $auth->uploadToken($Qiniu_config['bucket']);
		
		if(!empty($_FILES)){
			$uploadMgr = new \Qiniu\Storage\UploadManager();
			$filePath = $_FILES['file']['tmp_name'];             //获取上传的图片、文件
			$fileName = date('YmdHis').'-'.mt_rand(0,9).'.mp4';  //自定义保存在七牛的文件名
			$fileUrl = $Qiniu_config['domain'].'/'.$fileName;
			list($ret,$err) = $uploadMgr->putFile($token,$fileName,$filePath);
			echo json_encode(array('success'=>'上传成功','file_url'=>'http://'.$fileUrl,'file_name'=>$fileName));
	    	exit;
	    }else{
	    	echo json_encode(array('error'=>'未上传文件视频'));
	    	exit;
	    }
        
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值