Загрузить файл по URL-адресу

Я использую Windows некоторое время, и вместе с ним есть функция, когда вы хотите загрузить фотографию (например) на веб-сайт, вы нажимаете «Выбрать файл» в Chrome для загрузки фотографии, «Проводник» », и вместо выбора файла с жесткого диска вы можете вставить URL-адрес в« Проводник файлов »и нажать« Открыть », и он загрузит файл из Интернета во временные файлы и будет использовать его для загрузки.

Есть ли способ сделать это в Ubuntu 12.10?

Вот пример окна:
Загрузка с URL через File Explorer

Эта функциональность реализована диалоговым окном Open File операционной системы. На самом деле сайт или используемый вами браузер не имеют значения, поскольку это зависит от операционной системы.

Диалоговое окно Gnome Open File, используемое в Ubuntu, не поддерживает эту функцию, однако диалог открытия файла, используемый в KDE, позволяет открывать URL-адреса HTTP. Я не уверен, в чем ситуация с поддержкой в ​​других средах настольных компьютеров, которые работают на Ubuntu.

И обязательное решение командной строки 🙂 В духе этого ответа: что такое эквивалент командной строки для копирования файла в буфер обмена? Я написал простой скрипт Python, который принимает URL-адрес ресурса в качестве параметра, загружает файл / страницу во временное место и копирует полное имя файла в буфер обмена. Осталось только открыть диалоговое окно «Открыть файл» и нажать Ctrl-V.

Сценарий:

#!/usr/bin/python2 import os, tempfile, argparse, urllib parser = argparse.ArgumentParser(description="Download a file from an URL, save it as a temporary file and copy a link to the file to clipboard") parser.add_argument("url", help="The URL of a file to download") args = parser.parse_args() filename = tempfile.mktemp() urllib.urlretrieve(args.url, filename) os.system("echo %s|xclip -i -selection clipboard" % filename) print("File %s has been copied to clipboard, now open a File dialog and press Ctrl-V." % filename) 

Чтобы использовать, создайте директорию с именем bin в своем домашнем каталоге, поместите там сценарий (я назвал его gimme ) и установите для него исполняемое разрешение:

 chmod +x ~/bin/gimme 

Ahh, и вам понадобится xclip для его работы:

 sudo apt-get install xclip 

И вот как его использовать:

 gimme https://askubuntu.com/questions/228667/upload-file-from-url File /tmp/tmpFXs7_S has been copied to clipboard, now open a File dialog and press Ctrl-V. 

Я не кодер Python, но я хотел, чтобы что-то вроде этого загружало файлы. Я попробовал ответить Сергею, но он не работал в чате Facebook (возможно, в другом месте, именно там я и пытался).

Поэтому я немного изменил его:

 #!/usr/bin/python2 import os, tempfile, argparse, urllib, urlparse from random import randint parser = argparse.ArgumentParser(description="Download a file from a URL, save it as a temporary file and copy a link to the file to clipboard") parser.add_argument("url", help="The URL of a file to download") args = parser.parse_args() path = urlparse.urlparse(args.url).path urlext = os.path.splitext(path)[1] filename = tempfile.mktemp() + urlext urllib.urlretrieve(args.url, filename) os.system("echo %s|xclip -i -selection clipboard" % filename) print("File %s has been copied to clipboard, now open a File dialog and press Ctrl-V." % filename) 

Теперь он добавляет расширение файла к временному имени, поэтому FB идентифицирует правильный тип mimetype и соответствующим образом обрабатывает его.