阿里云 php断点上传
来源:互联网 发布:mac mini安装win7教程 编辑:程序博客网 时间:2024/05/16 05:37
https://help.aliyun.com/document_detail/32103.html
laravel:http://www.cnblogs.com/lsm19870508/p/5846680.html
yii:http://www.yiichina.com/code/1078
用了阿里云的断点上传,亲测有效:
首先阿里云的sdk一定要有,这里就不多说了。
直接使用:
贴出下面代码:
$accessKeyId = Yii::app()->params['log_id'];//账号id $accessKeySecret = Yii::app()->params['log_key'];//key值 $endpoint = Yii::app()->params['oss_endpoint']; $bucket = Yii::app()->params['oss_bucket']; $file_name=$this->cName($_FILES['file']['name']);//上传文件的名字,调用方法处理了一下 $object = 'video/'.$file_name;//上传的路径文件拼上文件名 /** * step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id */ try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $uploadId = $ossClient->initiateMultipartUpload($bucket, $object); } catch(OssException $e) { printf(__FUNCTION__ . ": initiateMultipartUpload FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": initiateMultipartUpload OK" . "\n"); /* * step 2. 上传分片 */ $partSize = 10 * 1024 * 1024; $uploadFile = $_FILES['file']['tmp_name']; $uploadFileSize = filesize($uploadFile); $pieces = $ossClient->generateMultiuploadParts($uploadFileSize, $partSize); $responseUploadPart = array(); $uploadPosition = 0; $isCheckMd5 = true; foreach ($pieces as $i => $piece) { $fromPos = $uploadPosition + (integer)$piece[$ossClient::OSS_SEEK_TO]; $toPos = (integer)$piece[$ossClient::OSS_LENGTH] + $fromPos - 1; $upOptions = array( $ossClient::OSS_FILE_UPLOAD => $uploadFile, $ossClient::OSS_PART_NUM => ($i + 1), $ossClient::OSS_SEEK_TO => $fromPos, $ossClient::OSS_LENGTH => $toPos - $fromPos + 1, $ossClient::OSS_CHECK_MD5 => $isCheckMd5, ); if ($isCheckMd5) { $contentMd5 = OssUtil::getMd5SumForFile($uploadFile, $fromPos, $toPos); $upOptions[$ossClient::OSS_CONTENT_MD5] = $contentMd5; } //2. 将每一分片上传到OSS try { $responseUploadPart[] = $ossClient->uploadPart($bucket, $object, $uploadId, $upOptions); } catch(OssException $e) { printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} FAILED\n"); printf($e->getMessage() . "\n"); return; } printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} OK\n"); } $uploadParts = array(); foreach ($responseUploadPart as $i => $eTag) { $uploadParts[] = array( 'PartNumber' => ($i + 1), 'ETag' => $eTag, ); } /** * step 3. 完成上传 */ try { $ossClient->completeMultipartUpload($bucket, $object, $uploadId, $uploadParts); } catch(OssException $e) { printf(__FUNCTION__ . ": completeMultipartUpload FAILED\n"); printf($e->getMessage() . "\n"); return; } printf(__FUNCTION__ . ": completeMultipartUpload OK\n");echo json_encode(array('succ'=>0,'url'=>Yii::app()->params['oss_url'].'/'.$object));//返回音频文件url。
阅读全文
0 0
- 阿里云 php断点上传
- PHP 阿里云上传
- php断点上传
- php 断点视频上传
- PHP调用接口到阿里云OSS同步上传图片
- 阿里云ecs服务器 修改php上传最大限制
- 阿里云OSS 上传文件
- iOS 阿里云上传图片
- 上传图片到阿里云
- 阿里云OSS分片上传
- 阿里云OSS上传thinkphp
- 阿里云OSS 文件上传
- PHP简易文件上传系统 For 阿里云存储 v1.3
- 阿里云服务器配置php+apache+mysql+phpMyadmin开发环境并上传本地代码
- php laravel 阿里云对象存储 多图上传 前端手机端页面遍历输出
- 阿里云配置php+mysql
- 阿里云配置php环境
- PHP阿里云短信通知
- Vue5_内容、属性中使用表达式
- 计划表
- LeetCode 309: 一个很清晰的DP解题思路
- XYNUOJ 1251 美元汇率(dollars)—贪心算法
- Java内部类
- 阿里云 php断点上传
- 51Nod 1596 搬货物
- 判断三角形
- XYNUOJ 1252 纪念品分组—贪心算法
- XYNUOJ 1253 磁带最大利用率问题-贪心算法
- DownloadManager实现下载、安装更新app功能
- HDU--OJ--1241 Oil Deposits
- G
- spring & velocity > context tool