PHP OSS 分片上传

本文详细介绍了如何使用PHP实现阿里云OSS对象存储的分片上传功能,包括初始化上传、分块上传、合并块以及错误处理等关键步骤,旨在提供一种高效稳定的大文件上传解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
/**
 * 分片上传至oss
 * Created by : 谜一样的男子
 */
require_once(dirname(__FILE__).'/aliyun-oss/autoload.php');
use OSS\OssClient;
use OSS\Core\OssException;
class lib_UploadOss
{
   
    protected  static  $accessKeyId = "yourAccessKeyId"; 
    protected  static  $accessKeySecret = "yourAccessKeySecret";
    # 区域地址如:http://oss-cn-hangzhou.aliyuncs.com
    protected  static  $endpoint = "yourEndpoint"; 
    # Bucket名称,例如examplebucket
    protected   $bucket= "yourBucketName";
    # 上传至oss文件路径 含文件名
    protected $object;
    # 本地临时文件地址 含临时文件名
    protected $filePath;
    # 文件后缀
    protected $fileExtension;
    # 文件名称 不含后缀
    protected $fileName;
    # oss文件分片上传唯一key
    protected $uploadId;
    # 本地分片临时文件目录
    protected $tempDir = 'uploads_tmp/';
    # 上传至oss 文件名
    protected $upFileName;
    # 上传句柄
    protected $ossClient;
    # 当前分片索引
    protected $chunk;
    # 分片总数
    protected $chunks;
    /**
     * lib_UploadOss constructor.
     * @param $filePost post信息,包含 分片数量 文件名
     * @param $file 分片文件信息
     * @param string $dir 自定义oss存放路径
     * @throws OssException
     */
    public function __construct($filePost,$file,$dir='')
    {
   
        if (empty($filePost)) return false;
        #前面拼一个字符串,解决中文不能识别bug
        $fileInfo = pathinfo(" " . $filePost['name']);
        #文件后缀
        $this->fileExtension = trim($fileInfo['extension']);
        #文件名不含后缀
        $this->fileName = trim($fileInfo['filename']);
        #文件临时地址
        $this->filePath = $file['filedata']['tmp_name'];
        #分片索引 oss只支持大于0的分片索引
        $this->chunk = $filePost['chunk']+1;
        #分片总数
        $this->chunks = $filePost['chunks'];
        #实例化oss上传类
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值