PHP上传视频到阿里云oss
- 下载阿里云oss的SDK
composer require aliyuncs/oss-sdk-php
- 上传视频,我用的是分片上传,其实阿里云的文档已经写得很清楚了,不过这是当我把上传的功能写出来后才这样觉得的,在没有写出来的时候我当时觉得他的文档写的一点都不清楚,所以我才决定写篇文章记录下
- 下面的代码是复制阿里文档的,本文主要是解释说明下其中的几个参数 :
$accessKeyId
,$accessKeySecret
这两个值都是可以在阿里云的账号中获取到的$endpoint
是oss仓库中的Endpoint
地域节点中的外网访问的那个,也可以是传输加速域名的那个$bucket
是oss的仓库名称$object
是指在上传到阿里云oss后文件的路径(其中包含了路径+文件名称)$filePath
是指在前端上传文件到后端后,有一个临时存放的位置,一般的键名是tmp_name
use OSS\Core\OssException;
use OSS\Core\OssUtil;
use OSS\OssClient;protected function uploadVideoToOss($accessKeyId, $accessKeySecret, $endpoint, $bucket, $object, $filePath)
{try {$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);//返回uploadId。uploadId是分片上传事件的唯一标识,您可以根据uploadId发起相关的操作,如取消分片上传、查询分片上传等。$uploadId = $ossClient->initiateMultipartUpload($bucket, $object);} catch (OssException $e) {return error_code(0, $e->getMessage());}$partSize = 10 * 1024 * 1024;$uploadFileSize = filesize($filePath);$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 => $filePath,// 设置分片号。$ossClient::OSS_PART_NUM => ($i + 1),// 指定分片上传起始位置。$ossClient::OSS_SEEK_TO => $fromPos,// 指定文件长度。$ossClient::OSS_LENGTH => $toPos - $fromPos + 1,// 是否开启MD5校验,true为开启。$ossClient::OSS_CHECK_MD5 => $isCheckMd5,);// 开启MD5校验。if ($isCheckMd5) {$contentMd5 = OssUtil::getMd5SumForFile($filePath, $fromPos, $toPos);$upOptions[$ossClient::OSS_CONTENT_MD5] = $contentMd5;}try {// 上传分片。$responseUploadPart[] = $ossClient->uploadPart($bucket, $object, $uploadId, $upOptions);} catch (OssException $e) {return error_code(0, $e->getMessage());}}$uploadParts = array();foreach ($responseUploadPart as $i => $eTag) {$uploadParts[] = array('PartNumber' => ($i + 1),'ETag' => $eTag,);}try {$result = $ossClient->completeMultipartUpload($bucket, $object, $uploadId, $uploadParts);return $result;} catch (OssException $e) {return error_code(0, $e->getMessage());}
}
- 有一些需要注意的地方:
- 在上传比较大的文件的时候,此时可能需要修改
php.ini
文件中的一些值,我试过了在代码中使用ini_set()
来设置,但是好像不起作用 - 有些值网上说是使用
ini_set()
修改不起作用,可以在.htaccess
文件中修改,但是我试过了直接报错,也不知道是我的原因还是什么 - 因此我就直接修改了
php.ini
文件中的值,比如有 : upload_max_filesize
,post_max_size
,max_execution_time
,max_input_time
,memory_limit
- 在上传比较大的文件的时候,此时可能需要修改
PHP上传视频到阿里云oss相关推荐
- vue 直接上传视频到阿里云oss
1.安装oss npm install ali-oss --save 2.在src下的util文件创建utils.js工具类 /*** 时间日期格式化* @param format* @returns ...
- 上传视频到阿里云服务器
######上传视频到阿里云服务器工具类 1.maven坐标 <dependency><groupId>com.aliyun</groupId><artifa ...
- 微信小程序直接上传文件到阿里云OSS组件封装
微信小程序直接上传文件到OSS 1. 封装公共方法 在根目录utils目录新建一个upload文件夹: // utils/upload/base64.jsvar base64EncodeChars = ...
- java上传文件至阿里云oss工具类
第一步:引入oss maven坐标 <dependency><groupId>com.aliyun.oss</groupId><artifactId>a ...
- 批量上传视频到阿里云
批量上传视频到阿里云 这段时间项目里有一个上传视频到阿里云的功能是我来负责写的,之前一直没有写过这种功能,感觉很难的亚子,但是后来仔细研究了一遍发现也没想象中那么难,最后经过不懈的努力也算是搞出来了哈 ...
- Springboot上传视频到阿里云(视频点播)和aliyun-java-sdk-vod依赖报红问题
一.pom.xm中导入依赖 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-ja ...
- 前端上传视频至阿里云
1.开通阿里云服务,获取userId 官方文档地址:https://help.aliyun.com/document_detail/52204.html?spm=a2c4g.11186623.6.91 ...
- 小程序上传文件到阿里云oss
本文仅举例上传图片和上传视频! 准备工作: 需要引入的js文件:https://download.csdn.net/download/impossible1994727/12328614 参考文档:h ...
- 【微信小程序】上传文件到阿里云OSS
小程序上传文件到OSS也是利用OSS提供的PostObject接口来实现表单文件上传到OSS 步骤1:配置Bucket跨域访问 客户端进行表单直传到OSS时,会从浏览器向OSS发送带有Origin的请 ...
- vue + elementUI upload组件,前端上传视频到阿里云视频点播
1.视频上传阿里云,首先引用阿里云的sdk,放在所需界面中引用 import '@/utils/aliyun-oss-sdk-6.13.0.min.js';import '@/utils/aliyun ...
最新文章
- ai中如何插入签名_联络中心如何在机器人和对话式AI迷宫中导航
- 获取dbgrid的行索引
- 1-4:CSS3课程入门之文本新增属性
- 新年巨献!祝所有朋友新一年闪闪发光
- 符乐安:2020年短视频创作将迎来新的高峰
- 【EPS精品教程】史上最牛EPS说明文档大全(23个PDF文档)
- Mr.J--重拾Ajax(二)-- 本地服务器配置测试
- Tomcat 通用组件
- k8s解决coredns 的ImagePullBackOff 和ErrImagePull 问题
- 统计文件字符个数 java_如何统计个文件中的字符个数
- 米勒-拉宾素性检验(MillerRabbin)算法详解
- php插入mp3,PHP网站插入音乐
- 什么是“元认知”?用具体的例子易懂地解说教育、商务中大受关注的能力!
- 手机版q群管机器人_手机QQ机器人怎么用,QQ机器人手机版怎么设置
- 重载和重写(覆盖)的区别
- 消除keil编译警告 #1296-D:extended constant initialiser used
- CVE-2017-12635+12636 复现+反弹shell
- CCIE-MPLS路由传递
- 微信小程序 向下跳动箭头
- 佳能相机魔灯固件中文版及导出工具下载地址