温馨提示×

PHP中curlfile上传文件的进度监控方法

PHP
小樊
97
2024-08-12 05:52:37
栏目: 编程语言

在PHP中使用curl上传文件时,可以通过设置CURLOPT_NOPROGRESS选项为false来启用进度回调函数。然后通过设置CURLOPT_PROGRESSFUNCTION选项来指定一个回调函数来监控上传进度。

以下是一个示例代码:

$file_path = 'path/to/file.jpg';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/upload.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'file' => new CURLFile($file_path)
));

// 设置进度回调函数
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, function($resource, $download_size, $downloaded, $upload_size, $uploaded) {
    if ($upload_size > 0) {
        $progress = ($uploaded / $upload_size) * 100;
        echo "Upload progress: " . $progress . "%\n";
    }
    return 0;
});

$response = curl_exec($ch);
curl_close($ch);

在上面的示例中,当上传文件时,进度回调函数会输出上传进度的百分比。您可以根据实际需求修改回调函数的内容来监控上传进度。

0