Автоматически импортировать изображение в форму из URL-адресов изображений в Интернете?

#php #javascript #html

#php #javascript #HTML

Вопрос:

Я использую форму для загрузки обоев, и мы вручную должны выбрать файл изображения..Я хочу сделать это из URL-адреса изображения (изображение в Интернете.. пример- www.mysite.com/images/my.jpg ), это означает, что без выбора файла изображения у меня есть такая форма —

 <form action="" method="post" enctype="multipart/form-data">
    <table class="grid" width="400">
        <tr class="r1">
            <td><label for="name">Title *:</label>      </td>
            <td><input name="name" type="text" id="name" value="<?php echo $name?>" size="40" />      </td>
        </tr>
        <tr class="r1">
            <td><label for="tags">Tags*:</label></td>
            <td><input name="tags" type="text" id="tags" value="<?php echo  View::escape($wallpaper->tags) ?>" size="40" />      </td>
        </tr>

        <tr class="r1">
            <td><label for="img">Wallpaper*:</label></td>
            <td><input type="file" name="img" id="img" />      </td>
        </tr>


            <td><input type="submit" name="upload_wallpaper" id="upload_wallpaper" value="Submit" />

        </tr>
    </table>
</form>
 

Теперь я хочу загрузить изображение по URL-адресу в этом разделе формы —

     <tr class="r1">
        <td><label for="img">Wallpaper*:</label></td>
        <td><input type="file" name="img" id="img" />      </td>
    </tr>
 

После этого я вручную отправлю форму после этого .. я просто хочу загрузить через URL, введя URL, например *www.mysite.com/images/my.jpg * не выбирая пункт обзор и выбор файла изображения.. Я много пробовал, но мне не удалось найти решение .. спасибо!!! В любом случае?

Ответ №1:

Измените тип ввода с файла на текстовое поле. Затем на серверной части используйте curl или что-то подобное для загрузки файла изображения, который был введен (если он существует).

 if (isset($_POST['img'])) {
    $url = $_POST['img'];

    // Curl the URL
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    curl_close ($ch);

    // Save it to disk
    $savePath = "/somewhere-on-your-disk/filename.jpg";
    $fp = fopen($savePath,'x');
    fwrite($fp, $result);
    fclose($fp);
}
 

Комментарии:

1. Да, я пробовал <input name=»img» type=»text» id=»img» value=»» size=»40″ /> Вот так … но это не работает ..кстати, как это сделать в curl? вы можете мне помочь?

2. Я отредактировал свой ответ.. Но вы также должны добавить проверку ошибок. Убедитесь, что файл существует, прежде чем пытаться сохранить его на диск