处理HTTP文件上传的最佳方式

3
使用标准HTML输入上传文件似乎总是显得笨拙。如果用户尝试上传大文件,可能需要很长时间,而且他们无法得到文件正在上传的队列。
我尝试过提供一个动画图形条的gif图形,但它并没有给用户任何上传进度的指示。我甚至尝试用AJAX做一个进度条,但那些总是很丑,并且从来没有正常工作过。
这是许多客户的问题,他们经常问我是否有更好的方法。有时我会为他们提供FTP站点,让他们在那里上传,但这也不是一个实际的解决方案。
你认为处理HTML中的HTTP文件上传的最佳方式是什么?您在互联网上看到的一些好主意/示例是什么?
8个回答

1

1

有几种在HTTP上使用带有进度条的异步文件传输技术,其中大多数涉及FlashXMLHttpRequest


1

我会添加swfupload。它是一个开源的Flash上传工具,如果用户没有安装Flash,它可以优雅地降级。


对我来说,这似乎并不是非常优雅的解决方案。如果用户没有启用JavaScript或Flash,则会删除按钮。它没有像人们期望的那样回退到文件上传控件。 - Martin Murphy

1

通过浏览器上传文件,实际上只有一种机制。但是,您可以通过提供进度条来使其更加用户友好,以显示上传的进度和速度。

通常情况下,这是通过将上传表单定位到隐藏的 iframe 并使用 AJAX 调用来查找已传输到服务器的文件大小。

以下是一个示例:

Megaupload


0

有趣的是,没有人提到NeatUpload上传组件,它由Dean Brettle开发,具有许多有趣的功能,并且也可以在MONO上运行。


不知道为什么有些恶意评分?我是反对恶意评分的,而且我认为这个答案没有任何问题。 - bgmCoder

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

0

YUI Uploader utility使用基于Flash的上传器,文档齐全,并提供多个示例供您尝试。我在几个项目中使用过它,并且会推荐它。


0

我使用这个工具来完成相对简单而完整的任务。基础源代码很好,如果需要,您可以轻松地进行自定义。

AJAX文件上传

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接