有人联系我创建一个定制的 ftp 应用程序,用户将下载该应用程序以便能够上传视频文件(最大 100mb)。
- 他们希望它是白痴证明(即对非计算机知识的人来说很容易)。我假设使用他们的用户名和密码设置像 FileZilla 这样的 ftp 应用程序对于大多数用户来说太过分了。
- 跨平台(哎哟)
当然,我不是第一个解决如何让用户上传大文件的问题的人。想知道是否有人可以给我任何提示。
(必须是 FTP 吗?FTP 有防火墙问题,ASCII 模式,当然密码是明文的。)
许多语言都有可用的 FTP 库,您可以使用少量的 UI 胶水将它们串在一起,以制作您自己的简单上传器应用程序。例如 Python 在标准库中有一个 ftplib。上次我这样做是在 C 中使用 Pfau 的 ftplib,例如,但是如果您不介意使用解释器打包应用程序的开销,现代脚本语言将更容易编写。
您的标签中有 .NET…….NET 的标准类库中没有 FTP,但您当然可以免费下载第三方库。另一方面,您说的是跨平台,所以我不确定您是否真的在谈论客户端上的 .NET。
您可以做的是提供多种上传方式,例如在您的站点中内置的基本 HTTP* 文件上传,每个人都知道如何使用,以及为高级用户提供标准的 [S?]FTP 接口,他们将能够操作 FTP 客户端。并不是说操作 FTP 客户端真的那么困难:只需告诉他们将 ftp:// URL 粘贴到 Windows 资源管理器中,大多数人应该会没事的。
*:理想情况下使用 AJAX 反馈让用户知道他们的上传进度,和/或可能是 Flash 上传器。并记住关闭/关闭服务器上的任何脚本超时规则,这样它就不会在上传中途放弃。HTTP 上传对于 100MB 量级的文件永远不会是最佳的,但您当然可以在这里改善默认的相当糟糕的浏览器无响应性。
上传到哪里?
您可以让每个人都安装Dropbox,并从他们都可以访问的企业帐户创建共享。
如果您不希望用户必须提供用户名和密码,您可能需要考虑单点登录策略。
如果用户必须上传大文件,请寻找一种恢复功能。
FTP是唯一的选择吗?如果您可以基于 P2P (bittorrent) 实现某些东西,您可以获得大文件的恢复和完整性功能。
这是我从谷歌搜索 bittorent 库中得到的 2 个
用 JS 和 HTML 构建一个简单的 Adobe Air 应用程序怎么样?我相信它现在具有 FTP 套接字功能。您还可以使用 DB 中的构建来存储发送到何处、占用空间小、跨平台的详细信息,并且您可以以您感觉最好的方式构建它(flash、flex、JS/HTML)。
我有类似的要求,我正在考虑使用 Adobe air 和 jQuery 或 Ext 作为解决方案。
虽然不是 FTP,但您可以尝试使用swfupload通过 HTTP 上传文件。我们使用它大约。在 IIS 上上传 100mb 文件,并且运行良好。
请注意,您必须将 web.config 中的最大请求大小设置为 100 或更多 MB...
上传 100mb 的文件并不比 1kb 的文件复杂。您必须确保接收方(在本例中为服务器)不会尝试将整个文件接收到内存中。服务器可以立即将数据写入磁盘或数据库 CLOB。服务器从输入流读取并写入输出流,只需要很少的资源。
谢谢大家,必须说这是我在论坛上得到的最全面的回复。
我想我会建议 2 条路线,比如提到的 bobince
1)http使用SWFUpload(bh213),我以前用过。它非常容易设置并且具有良好的用户体验
2) 然后提供一个 ftp 选项。使用浏览器或类似 filezilla 的东西。