file_put_contents не может получить весь файл
Я использую hostmonster в качестве хостинг-провайдера.
Я написал ниже код.
$mp4_url = 'http://www.w3schools.com/html/mov_bbb.mp4';
$filename = 'sample.mp4';
file_put_contents( $filename , fopen($mp4_url, 'r' ) );
Я вижу странное поведение. Иногда это работает, но иногда он копирует только несколько кусков, например, иногда размер файла составляет 100 КБ, иногда 600 КБ, иногда он копирует весь файл.
Пожалуйста, предложите, что я должен сделать, чтобы скопировать любой файл mp4 с любого сервера на наш сервер.
Мы должны копировать большие файлы, размер может быть 600 МБ или 1 ГБ.
2 ответа
Пытаться copy()
, Это сделает вашу работу:
$file = 'http://www.w3schools.com/html/mov_bbb.mp4';
$newfile = $_SERVER['DOCUMENT_ROOT'] . '/sample.mp4';
if ( copy($file, $newfile) ) {
echo "Copy success!";
}else{
echo "Copy failed.";
}
Используйте curl вместо использования file_put_contents
$url='http://www.w3schools.com/html/mov_bbb.mp4';
$saveto='path';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$raw = curl_exec($ch);
curl_close($ch);
if (file_exists($saveto)) {
unlink($saveto);
}
$fp = fopen($saveto, 'x');
fwrite($fp, $raw);
fclose($fp);