91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP copy與文件傳輸中斷的恢復

發布時間:2024-09-13 19:04:41 來源:億速云 閱讀:81 作者:小樊 欄目:編程語言

在 PHP 中,當使用 copy() 函數進行文件傳輸時,如果傳輸被中斷,可能需要恢復傳輸并繼續從中斷點開始。為了實現這個功能,你可以使用 cURL 庫來實現斷點續傳。

以下是一個使用 cURL 實現斷點續傳的示例:

<?php
function resume_broken_transfer($source, $destination, $timeout = 30) {
    // 獲取已經下載的文件大小
    if (file_exists($destination)) {
        $downloadedBytes = filesize($destination);
    } else {
        $downloadedBytes = 0;
    }

    // 初始化 cURL
    $ch = curl_init();

    // 設置 cURL 選項
    curl_setopt($ch, CURLOPT_URL, $source);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_NOPROGRESS, false);
    curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, function ($resource, $downloadSize, $downloaded, $uploadSize, $uploaded) use ($downloadedBytes) {
        echo "Downloaded: " . ($downloaded + $downloadedBytes) . " bytes\n";
    });
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_RESUME_FROM, $downloadedBytes);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);

    // 開始傳輸
    $result = curl_exec($ch);

    // 檢查是否有錯誤
    if (curl_errno($ch)) {
        echo 'Error: ' . curl_error($ch);
        return false;
    }

    // 關閉 cURL
    curl_close($ch);

    // 將結果追加到目標文件
    file_put_contents($destination, $result, FILE_APPEND);

    return true;
}

// 使用示例
$source = 'http://example.com/large-file.zip';
$destination = 'local-large-file.zip';
$resumed = resume_broken_transfer($source, $destination);

if ($resumed) {
    echo "File transfer completed successfully.\n";
} else {
    echo "File transfer failed.\n";
}
?>

這個示例中的 resume_broken_transfer() 函數接受三個參數:源文件 URL、目標文件路徑和超時時間(默認為 30 秒)。函數首先檢查目標文件是否存在,如果存在,則獲取已下載的字節數。然后,使用 cURL 庫下載文件,并在下載過程中使用回調函數顯示下載進度。如果傳輸被中斷,函數將恢復傳輸并從中斷點繼續。最后,將下載的數據追加到目標文件。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

日照市| 平远县| 潼南县| 出国| 滦南县| 绥德县| 西乡县| 双桥区| 辉县市| 化隆| 张家界市| 公主岭市| 新安县| 稷山县| 宜城市| 黎平县| 乌拉特前旗| 临沂市| 普定县| 柯坪县| 广灵县| 上饶市| 广昌县| 益阳市| 石门县| 滨海县| 新蔡县| 泉州市| 临湘市| 永宁县| 南投县| 荔浦县| 拉萨市| 洞头县| 上虞市| 保山市| 吉林市| 寿阳县| 安溪县| 灯塔市| 凤冈县|