Можно ли копировать изображения из Интернета на ваш жесткий диск?
-
11-10-2019 - |
Вопрос
Я пытаюсь создать страницу для личного использования. Я хочу сделать, создать систему, с помощью которой я могу загрузить изображения на свой локальный жесткий диск, непосредственно, предоставив ссылку через Localhost Как ВАМП. Причина, по которой я пытаюсь сделать, заключается в том, что я хочу, чтобы изображения были автоматически отсортированы на моем жестком диске. Моя форма формы будет чем -то вроде этого
<form method="POST" action="process.php">
<input type="text" name="URL" id="URL" />
<input type="text" name="category" id="category" />
<input type="text" name="subcategory" id="category" />
<input type="submit">
</form>
Теперь в process.php
//This is just a sample... So please ignore the roughness of the coding
copy($_POST['url'],$_POST['category']."/".$_POST['subcategory']."/somename.jpg");
// If you noticed, the categories and subcategories are actually the name of directory, where I want the picture to go be saved....
Я думаю, что мой подход неверен. Как я могу достичь чего -то подобного?
Ошибка
Warning: copy(images/image.jpg) [function.copy]: failed to open stream: No such file or directory in
Решение 2
Хорошо, вместо этого я использовал Curl, чтобы достичь того, что ожидаю. Вот кусок кода
$img = $_POST['url'];
$fullpath = $_POST['category']."/".$_POST['subcategory']."/".basename($img);
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);
$fp = fopen($fullpath,'x');
fwrite($fp, $rawdata);
Другие советы
Если allow_url_fopen
верно в php.ini и в вашем PHPVERSION
IS> = 4.3.0 Ваш код должен работать.
Сначала вы можете загрузить из документа Script PHP из указанного URL, а затем предоставить ссылку HTTP-Client для загрузки локально сохраненного файла. или поместите содержание документа в потоку вывода:
$cont = file_get_contents($_GET['url']);
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: binary ");
header('Accept-Ranges: bytes');
header('Content-disposition: attachment; filename=' . $new_file_name));
echo($cont);