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

3

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

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

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

    
задан Get Off My Lawn 13.12.2012 в 16:32
источник

3 ответа

4

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

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

    
ответ дан devius 13.12.2012 в 18:33
источник
1

И обязательное решение командной строки :) В духе этого ответа: Что такое эквивалент командной строки для копирования файла на Буфер обмена? Я написал простой скрипт 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.
    
ответ дан Sergey 13.12.2012 в 22:23
0

Я не кодер 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)

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

    
ответ дан mattstoicbuddha 23.12.2016 в 08:30