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

时间:2008-12-11 23:18:22

标签: html http file-upload

使用标准HTML输入通过网页上传文件对我来说似乎总是很笨拙。如果用户尝试上传大文件,它可以永远继续下去,并且他们没有得到文件实际上传的队列。

我尝试过提供一个动画图形栏的gif图形,但它没有向用户提供任何上传内容的指示。我甚至试图用AJAX做一个进度条,但那些总是很难看,似乎从来没有正常工作。

这对我的许多客户来说都是一个问题,我经常被问到是否有更好的方法。有时我会给他们提供一个FTP站点,以便他们可以上传到那里,但这也不是一个实用的解决方案。

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

8 个答案:

答案 0 :(得分:1)

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

你可以

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

谷歌的一些随机链接:

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我会在此添加swfupload。它是一个开源闪存上传器,如果用户没有闪存,可以优雅地降级。

答案 3 :(得分:1)

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

这通常是通过在隐藏的iframe上定位上传表单并使用AJAX调用来查找文件已到达服务器的数量来完成的。

以下是一个例子:

Megaupload

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我使用这个作为一个相当简单和完整的工具。基本源代码很好,您可以根据需要轻松自定义它。 AJAX File Upload

答案 7 :(得分:0)

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