Загрузка больших файлов в WebDAV с поддержкой возобновления

Я хочу загрузить большие файлы в ownCloud с помощью API WebDAV.

Я использую этот код для этого:

<?php
$url = "http://user:[email protected]/remote.php/webdav/test.mp4";
$localfile = "test.mp4";
$fp = fopen ($localfile, "r");
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PUT, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
$http_result = curl_exec($ch);
$error = curl_error($ch);
$http_code = curl_getinfo($ch ,CURLINFO_HTTP_CODE);
curl_close($ch);
fclose($fp);
print $http_code;
print "<br /><br />$http_result";
if ($error) {
print "<br /><br />$error";
}
?>

Но когда соединение потеряно, этот скрипт не может возобновить загрузку файла.

Можно ли возобновить загрузку файлов с помощью WebDAV?

Спасибо

0

Решение

Использовать CURLOPT_RESUME_FROM_LARGE вариант.

Либо установите его в положение, чтобы начать резюме с. Или используйте -1 чтобы завиток автоматически возобновился в конце частично загруженного файла.

Обратите внимание, что это влияет только на удаленную сторону. Вам также нужно искать указатель чтения локального файла в той же позиции (используя fseek). Итак, если вы хотите возобновить работу в конце частично загруженного файла, вам нужно сначала запросить его размер, чтобы узнать, где искать указатель на чтение локального файла.
Для этого см. PHP: удаленный размер файла без загрузки файла.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]