3

使用标准 HTML 输入通过网页上传文件对我来说总是很笨拙。如果用户尝试上传一个大文件,它可能会一直持续下去,并且他们不会得到文件实际上正在上传的队列。

我试图做一些事情,比如提供一个 gif 图形,它是一个动画图形栏,但它没有给用户任何关于上传多少的指示。我什至尝试过用 AJAX 做一个进度条,但那些总是很丑,而且似乎从来没有正常工作。

这一直是我的许多客户的问题,并且经常有人问我是否有更好的方法。有时我会为他们提供一个 FTP 站点,以便他们可以将其上传到那里,但这也不是一个实用的解决方案。

您认为从 HTML 处理 HTTP 文件上传的最佳方式是什么?您在互联网上看到过哪些好的想法/例子?

4

8 回答 8

1

可以使用许多客户端控件。

你可以

  • 构建您自己的 ActiveX 控件。仅限 Windows/IE
  • 使用 Flash 对文件进行排队,并使用标准文件上传协议一次将一个文件上传到服务器。
  • 使用签名的 java 小程序上传。
  • 编写浏览器插件。

来自谷歌的一些随机链接:

http://www.element-it.com/MultiPowUpload.aspx

http://www.codeproject.com/KB/aspnet/FlashUpload.aspx

http://www.dmxzone.com/forum/go/?36564

于 2008-12-11T23:29:23.367 回答
1

有几种技术可以通过 HTTP 使用进度条进行异步文件传输,其中大多数涉及FlashXMLHttpRequest

于 2008-12-11T23:32:04.517 回答
1

我会在其中添加swfupload。这是一个开源的 Flash 上传器,如果用户没有 Flash,它可以优雅地降级。

于 2008-12-11T23:41:45.900 回答
1

实际上只有一种通过浏览器上传的机制。但是,您可以通过提供一个进度条来显示上传正在进行以及以何种速度进行,从而对其进行修饰并使其更加用户友好。

这通常通过将上传表单定位到隐藏的 iframe 并使用 AJAX 调用来找出有多少文件已到达服务器来完成。

这是一个例子:

超级上传

于 2008-12-12T00:28:03.563 回答
0

如果您运行 mod_perl2 apache,则有Apache2::UploadProgress模块。这会为 http 上传请求添加一个 id,然后您可以向服务器查询该上传的进度。内置支持在弹出窗口或上传页面中创建 AJAX 进度条。如果您想构建自己的进度显示,您可以将信息作为 XML 或 JSON 数据返回。

于 2009-06-30T17:26:26.357 回答
0

YUI Uploader 实用程序使用基于 Flash的上传器,有很好的文档,并且有几个示例供您尝试。我已经在几个项目中使用过它,并且会推荐它。

于 2009-06-30T17:32:29.907 回答
0

我用这个作为一个相当简单和完整的工具。基本源代码很好,如有必要,您可以轻松自定义它。 AJAX 文件上传

于 2009-06-30T17:40:20.037 回答
0

有趣的是,没有人提到过Dean Brettle的NeatUpload上传组件,它有很多有趣的功能并且也可以在 MONO 上运行

于 2011-01-22T20:49:44.240 回答