Как загрузить изображение с удаленного сайта, используя JavaScript? - PullRequest
2 голосов
/ 18 августа 2011

Есть ли способ, которым я могу это сделать? Например, у меня есть

<input type="file" id="upload_file" />

Очевидно, я не могу просто

$('#upload_file').val('http://www.site.com/path/to/image.jpg').parent().submit();

Ответы [ 4 ]

4 голосов
/ 18 августа 2011

Вы не можете сделать это.

  1. Javascript не позволит вам читать с других доменов (по соображениям безопасности).
  2. Входные данные файла не принимают ввод URL (или в этом отношении пути) AFAIK.
0 голосов
/ 18 августа 2011

То есть, вы не можете загружать файлы без серверного инструмента. Отправлять файл на сервер бессмысленно, если на стороне нет ничего, что могло бы его получить.

Сказал, что, если у вас уже есть доступный язык на стороне сервера и файл, который общедоступен по URL, язык на стороне сервера вполне способен извлекать файл своими собственными средствами. Нет необходимости использовать браузер в качестве посредника. Вам просто нужно отправить URL в обычном элементе <input type="text">.

Если файл недоступен для общего доступа, например, он принадлежит интрасети или защищен паролем, возможно, проще проинструктировать пользователя ввести URL-адрес в диалоге браузера «Открыть файл». Во многих случаях браузер загружает файл и заполняет элемент управления <input type="file"> временным загруженным файлом.

0 голосов
/ 18 августа 2011

ЕСЛИ этот сайт поддерживает то, что вы пытаетесь сделать, это должно работать.Большинство загрузок файлов очень строги, так как вы не можете просто загрузить файл куда хотите, даже если вы знаете скрипт загрузки.

Если хост поддерживает отправку ссылки на изображение, и он знает, что делать сэто ... я не понимаю, почему ваш скрипт не должен работать.

<form method="post" action="http://www.example.org/">
     <input type="text" name="upload_file" id="upload_file" value="" />
     <input type="submit" onclick="$('#upload_file').val('http://www.example.org/example.jpg');">
</form>
0 голосов
/ 18 августа 2011

Я не вижу, как ты заставишь это работать.Какой язык на стороне сервера вы используете?Не лучше ли просто сделать прямой запрос на удаленный файл с сервера?

...