Функция php file_get_contents сохраняет неверный файл изображения в моем новом веб-сервере
Я разработал плагин WordPress, который использует file_get_contents()
извлекать изображения из удаленного URL и сохранять его в локальной папке с помощью функции fwrite. Файл изображения сохраняется в локальной папке, чтобы на него можно было ссылаться позже.
Это прекрасно работает на одном веб-сервере 1. Но когда я установил плагин в WordPress, поддерживаемый на другом новом веб-сервере 2, файл создается в локальной папке, но кажется, что он поврежден. Я полагаю, что файл создан для изображений размером менее 100 КБ, но большие файлы, которые должным образом созданы на прежнем веб-сервере 1, повреждены при получении и создании на сервере 2.
Ниже приведен код, который я использую для извлечения изображений и сохранения в локальной папке:
//$imgurl = url of the image file and $upload_path
// is path where image will be stored
$file = file_get_contents($imgurl) or die('File too large or inacessible');
$myFile = $upload_path . "\internal\folder\structure\\" . $file_name;
$fh = fopen($myFile, 'w') or die("Error");
$fwrite = fwrite($fh, $file);
if($fwrite === false)
{
echo "error";
}
else
{
echo "file has been created ".$file_name;
}
fclose($fh);
На сервере 1 это работает нормально, но на сервере 2 файл создается, но не может открыть его, потому что он поврежден. Я думаю, это, вероятно, должно быть связано с конфигурацией php сервера 2, но я не очень уверен, поэтому я с нетерпением жду вашей помощи.
1 ответ
Там может быть несколько причин
Ошибка PHP, сгенерированная чем-то на server2
некоторые выходные данные, такие как перевод строки или пробел перед вашей функцией
прочитайте http://php.net/manual/en/function.file-get-contents.php для подсказки