我已经使用 Windows 一段时间了,它有一个功能,当你想上传一张照片(例如)到一个网站时,你点击 Chrome 中的“选择文件”来上传照片,就会打开一个“文件资源管理器”,你不需要从硬盘上选择一个文件,可以粘贴网址进入“文件资源管理器”并按打开,它会从网络下载文件到您的临时文件中,并使用它来上传。
有什么方法可以在 Ubuntu 12.10 中做到这一点吗?
以下是 Windows 示例:
通过文件资源管理器从 URL 上传
答案1
此功能由操作系统的“打开文件”对话框实现。实际上,您使用的网站或浏览器并不重要,因为这是特定于操作系统的。
Ubuntu 中使用的 Gnome 打开文件对话框不支持此功能,但是 KDE 中使用的文件打开对话框可以打开 HTTP URL。我不确定在 Ubuntu 上运行的其他桌面环境的支持情况如何。
答案2
还有一个强制性的命令行解决方案:)本着这个答案的精神:与将文件复制到剪贴板等效的命令行是什么?我编写了一个简单的 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
啊哈,你需要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.
答案3
我不是 Python 程序员,但我确实想要类似这样的文件上传工具。我尝试了 Sergey 的答案,但它不适用于 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 并进行适当的处理。