Показать сообщение отдельно
  #6 (permalink)  
Старый 19.06.2022, 12:43
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Есть два способа выгрузить картинки с другого сайта с помощью php?
1 Способ:
Цитата:
<?php
$url = 'https://bipbap.ru/wp-content/uploads/2017/04/priroda_kartinki_foto_03.jpg';
$path = './images2/priroda_kartinki_foto_03.jpg';
file_put_contents($path, file_get_contents($url));
?>
2 Способ:
Цитата:
<?php

$ch = curl_init('https://bipbap.ru/wp-content/uploads/2017/04/priroda_kartinki_foto_03.jpg');
$fp = fopen('./images/ priroda_kartinki_foto_03.jpg’, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

?>
Второй вариант, как и в случае с JavaScript работает не всегда. Ошибок нет, но картинка сохраняется пустой. Если попытаться загрузить ://bipbap.ru/wp-content/uploads/2017/04/priroda_kartinki_foto_03.jpg с помощью JavaScript мы опять получим тоже самое сообщение:
Цитата:
Access to Image at 'https://sunflowercreations.org/wp-img/javascript/how-add-canvas-todataurl-in-src.png' from origin 'http://site.su' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://site' is therefore not allowed access.
Если попытаться загрузить эту картинку http://img.yandex.net/i/www/logo.png, то она загрузиться в трех разных примерах.

Что касается почему не всегда работает второй вариант, через CURL, то предположительно по той же самой причине что и JS (хотя и нет ошибок), значит остается первый вариант, который работает всегда. Но один php не годится использовать, надеялась сделать загрузку через progress bar.
Цитата:
<progress id="progressX" max="100" value="0"></progress>
Можно как-то сделать загрузку из внешнего источника через progress bar?

Последний раз редактировалось Olga27, 19.06.2022 в 12:46.
Ответить с цитированием