Я искал в Интернете, а также много сообщений от SO, и мне не повезло. У меня есть следующий код для получения файла с удаленного сервера.
$url = 'http://www.example.com/images/abc.png';
$path = '/home/axxxxxxx/public_html/images/abc.png';
$fp = fopen($path, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
$url
и $path
представляют файл с одного сервера. Когда я запускаю код, html-страница выводит странный код, который начинается с ‰PNG IHDRàw=ø IDATxÚ•yLWÇ¿3³3³ì² (VP)àUÓzDc«
....
Когда я открыл файл new.png с помощью текстового редактора, код, который я получил, был идентичен коду на странице, на которой находится вышеприведенный скрипт php cURL. (Кажется, скрипт читает правильный файл)
Я также получаю сообщения об ошибках, говорящие,
Warning: fopen(../axxxxxxx/public_html/images/new.png) [function.fopen]: failed to open stream: No such file or directory in /home/ayyyyyyy/public_html/test.php on line 5
Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in /home/ayyyyyyy/public_html/test.php on line 8
Отображаемый здесь набор символов Юникода (PNG IHDRàw=ø IDATxÚ•yLWÇ¿3³3³ì² (VP)àUÓzDc«
)
Warning: fclose(): supplied argument is not a valid stream resource in /home/ayyyyyyy/public_html/test.php on line 12
Оба сайта размещены на 000webhost.com, если это имеет значение.
Как загрузить файл на компьютер пользователя?