Exemplo n.º 1
0
function upload_baidupcs($zip_file_path)
{
    $file_blocks = array();
    //分片上传文件成功后返回的md5值数组集合
    $file_block_size = 2 * 1024 * 1024;
    // 2M
    $rmote_dir = str_replace('//', '/', REMOTE_ROOT . '/backup/');
    $file_name = basename($zip_file_path);
    $BaiduPCS = new BaiduPCS(BAIDU_TOKEN);
    // 开始分片上传
    $handle = @fopen($zip_file_path, 'rb');
    while (!@feof($handle)) {
        $file_block_content = fread($handle, $file_block_size);
        $temp = $BaiduPCS->upload($file_block_content, $remote_dir, $file_name, false, true);
        if (!is_array($temp)) {
            $temp = json_decode($temp, true);
        }
        if (isset($temp['md5'])) {
            array_push($file_blocks, $temp['md5']);
        }
    }
    fclose($handle);
    //@unlink($zip_file_path);
    if (count($file_blocks) > 1) {
        $BaiduPCS->createSuperFile($remote_dir, $file_name, $file_blocks, '');
    }
}
Exemplo n.º 2
0
$pcs = new BaiduPCS($access_token);
if (!file_exists($file)) {
    exit('文件不存在,请检查路径是否正确');
} else {
    $fileSize = filesize($file);
    $handle = fopen($file, 'rb');
    //分片上传文件成功后返回的md5值数组集合
    $filesBlock = array();
    //设置分片上传文件块大小为20K
    $blockSize = 20480;
    if ($fileSize < $blockSize) {
        exit('请选择体积大于20480个字节的文件');
    }
    $isCreateSuperFile = TRUE;
    while (!feof($handle)) {
        $temp = $pcs->upload(fread($handle, $blockSize), $targetPath, $fileName, $newFileName, $isCreateSuperFile);
        if (!is_array($temp)) {
            $temp = json_decode($temp, true);
        }
        array_push($filesBlock, $temp);
    }
    fclose($handle);
    if (count($filesBlock) > 1) {
        $params = array();
        foreach ($filesBlock as $value) {
            array_push($params, $value['md5']);
        }
        $result = $pcs->createSuperFile($targetPath, $fileName, $params, $newFileName);
        echo $result;
    }
}