文件上传进度条

11

可能重复:
在PHP中上传进度条

有人能建议一种好的且易于实现的方法,在上传文件时包含文件上传进度条。我知道这将涉及到JavaScript和PHP的混合使用。请提供一个建议。


我经常想到这个问题。以前我总是使用Flash解决方案,比如Uploadify。我尝试过使用jQuery,但在尝试使用两个Ajax请求时失败了。我发现Flash解决方案不可靠,特别是在IE中。这并不奇怪。 - Jake N
暂时不要考虑JavaScript。不幸的是,Flash现在是理想的解决方案。 - Iznogood
1
这个问题已经被问过几次了: https://dev59.com/eHRA5IYBdhLWcg3wuAcp https://dev59.com/xkbRa4cB1Zd3GeqP4ueY - bjudson
6个回答

1

我喜欢uploadify。它非常容易实现,而且完美地完成了工作。


是的,我喜欢Uploadify,并且目前正在使用它来显示上传进度。它非常好和整洁。我正在尝试另一种方法,以便我可以用更少的文件并更好地控制设计,因为我对swf闪存不太熟悉。此外,我有一个疑问,是否可以在通过Uploadify上传视频文件时使用FFmpeg进行视频编码。 - Rahul TS
当然可以。一旦文件在服务器上,它的来源就无关紧要了。而且JavaScript解决方案必须在Internet Explorer上进行测试。祝你好运。 :) - Iznogood
谢谢,你有没有想过除了ffmpeg之外的示例编码技术来将视频文件转换为.flv、.mp4和.avi格式?因为我当前的托管帐户不支持ffmpeg格式。 - Rahul TS
除了使用像外部服务这样的东西来完成此操作之外,没有其他方法。甚至可以存储视频。亚马逊S3是一个不错的选择。 - Iznogood

1

然而,似乎没有进度条。 - Pekka
标题上说有进度条。不过我不太确定。 - Alec Smart

0

SWFUpload

SWFUpload是一个JavaScript库,它封装了Flash Player的上传功能。它通过多文件选择、上传进度和客户端文件大小检查将您的上传提升到了一个新的水平。


好吧...并不是真正的:它与普通的基于表单的文件上传方式不同。您不能只是将其放入普通的文件上传表单中并显示进度条,这是我认为OP正在寻找的。(如果不是,SWFUpload是一个很好的选择!) - Pekka
是的,我是,但我也想要这个简单的表单,上传后会有进度条,它将把内容编码为其他格式,如.flv、.mp4和.avi,因为我想要这个表单来上传视频。 - Rahul TS
SWF上传很棒,但我不像你说的那样深入研究它,因为在上传后编码视频文件这种特定情况下可能没有用处。 - Rahul TS

0

你需要检查已经在服务器上的文件部分的大小,然后通过Ajax将其获取到客户端,在那里可以绘制进度条。(记得先检查整个数据的大小,以计算百分比;-))


1
所以...你必须上传文件才能知道它的大小,然后回到过去展示进度条? :) - Pekka
不,你可以在上传之前通过JS在浏览器中读取文件大小... - Tokk
不可能。JavaScript无法访问本地文件。 - Pekka
@Pekka 在更现代的浏览器中是可能的:https://developer.mozilla.org/zh-CN/docs/Using_files_from_web_applications#Getting_information_about_selected_files - John Stimac

0

我不相信使用ajax可以实现这一点。你只有在上传后才能获得完整的文件大小,但那时已经太晚了。

然而,如果你使用基于Flash的上传器,这是可能的。


0

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