2

有人联系我创建一个定制的 ftp 应用程序,用户将下载该应用程序以便能够上传视频文件(最大 100mb)。

  • 他们希望它是白痴证明(即对非计算机知识的人来说很容易)。我假设使用他们的用户名和密码设置像 FileZilla 这样的 ftp 应用程序对于大多数用户来说太过分了。
  • 跨平台(哎哟)

当然,我不是第一个解决如何让用户上传大文件的问题的人。想知道是否有人可以给我任何提示。

4

8 回答 8

1

(必须是 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 量级的文件永远不会是最佳的,但您当然可以在这里改善默认的相当糟糕的浏览器无响应性。

于 2008-10-18T11:37:51.923 回答
0

上传到哪里?

您可以让每个人都安装Dropbox,并从他们都可以访问的企业帐户创建共享。

于 2008-10-18T10:55:20.980 回答
0

如果您不希望用户必须提供用户名和密码,您可能需要考虑单点登录策略。

于 2008-10-18T10:57:59.913 回答
0

如果用户必须上传大文件,请寻找一种恢复功能。

FTP是唯一的选择吗?如果您可以基于 P2P (bittorrent) 实现某些东西,您可以获得大文件的恢复和完整性功能。

这是我从谷歌搜索 bittorent 库中得到的 2 个

http://sourceforge.net/projects/libbt/

http://www.codeproject.com/KB/cpp/FTKernelAPI.aspx

于 2008-10-18T11:14:56.573 回答
0

用 JS 和 HTML 构建一个简单的 Adob​​e Air 应用程序怎么样?我相信它现在具有 FTP 套接字功能。您还可以使用 DB 中的构建来存储发送到何处、占用空间小、跨平台的详细信息,并且您可以以您感觉最好的方式构建它(flash、flex、JS/HTML)。

我有类似的要求,我正在考虑使用 Adob​​e air 和 jQuery 或 Ext 作为解决方案。

于 2008-10-18T11:46:29.457 回答
0

虽然不是 FTP,但您可以尝试使用swfupload通过 HTTP 上传文件。我们使用它大约。在 IIS 上上传 100mb 文件,并且运行良好。

请注意,您必须将 web.config 中的最大请求大小设置为 100 或更多 MB...

于 2008-10-18T11:58:44.097 回答
0

上传 100mb 的文件并不比 1kb 的文件复杂。您必须确保接收方(在本例中为服务器)不会尝试将整个文件接收到内存中。服务器可以立即将数据写入磁盘或数据库 CLOB。服务器从输入流读取并写入输出流,只需要很少的资源。

于 2008-10-18T12:03:32.717 回答
0

谢谢大家,必须说这是我在论坛上得到的最全面的回复。

我想我会建议 2 条路线,比如提到的 bobince

1)http使用SWFUpload(bh213),我以前用过。它非常容易设置并且具有良好的用户体验

2) 然后提供一个 ftp 选项。使用浏览器或类似 filezilla 的东西。

于 2008-10-20T07:46:19.083 回答