【发布时间】:2013-09-12 16:28:02
【问题描述】:
我想使用jQueryFileUpload 上传不在我的计算机上而是在外部网站上的文件,所以我只有它的 URL,例如 https://dl.dropboxusercontent.com/s/wkfr8d04dhgbd86/onarborLogo64.png。
我完全不知道如何执行此操作,但我认为这涉及到adding the file data programmatically,而不是使用传统的基于<label for='myComputerFiles'> 的文件选择。
如果这是正确的,接下来FileReader()?
任何想法将不胜感激。
【问题讨论】:
-
您应该在服务器上执行此操作 - 需要用户干预才能在本地下载它,这看起来很笨拙且不友好。
-
@Archer 感谢您的想法。真正的场景是使用Dropbox Chooser,这样就会有明确的用户干预来从自己的 Dropbox 中“选择”文件。此外,jQueryFileUpload 已经使用
FileReader()来预览<label for='myComputerFiles'>选择的文件。显然,我不想变得老套和不友好,但在我看来,处理这个客户端是每个人 (Dropbox's/jQueryFileUpload/FileReader()) 的意图以及the way of the future。 -
我明白你在问什么,但老实说,我相信这最好在服务器上完成。原因?您必须首先下载文件(这是一个不确定的过程),然后将其上传到服务器。如果您将 URL 传递给服务器,那么它可以在 1 个操作中执行整个过程 - 下载(这实际上与您上传它相同)。此外,读取本地文件的能力,这就是 FileReader 的用途,并不意味着您应该下载文件以再次上传它们。这是错误的逻辑,您的用户不会欣赏它。
-
另外,Dropbox 选择器并不是一种下载文件的方式。它旨在替代下载文件或将它们上传到其他服务器...
...without having to worry about the complexities of implementing a file browser, authentication, or managing uploads and storage -
如果 S3 上有一个 API 调用允许您指定一个 URL,那么这将是最明显的使用方法。如果你不能这样做,那么你要么需要为用户下载文件for(到你的服务器上),然后将文件上传到 S3,或者你回到原来的下载想法客户端并从那里上传。无论哪种方式,S3 的引入显然增加了另一层复杂性,但我最初会考虑从客户端获取 URL 并在我的服务器上获取该文件,以便之后我可以做任何我想做的事情。
标签: javascript jquery file file-upload jquery-file-upload