Javascript web应用程序的最佳非flash上传组件?

Javascript web应用程序的最佳非flash上传组件?,javascript,jquery,upload,Javascript,Jquery,Upload,我想要上传脚本/组件的建议。我的标准: 没有闪光 普通Javascript ok,jquery ok 必须提供进度条(例如从ajax调用更新) 可能不相关,但我在服务器端使用ASP.NETMVC 谢谢 更新 是的,我知道这需要一个服务器端组件,但我可以提供。我对客户端脚本更感兴趣。(不过,也许有些解决方案会与服务器端实现联系在一起——我不知道) 只是澄清一下——它不一定是特定于.net的。我很高兴使用一个只附带(例如)PHP服务器端脚本的组件,并使用我自己的.net 感谢所有的答案-这里有

我想要上传脚本/组件的建议。我的标准:

  • 没有闪光
  • 普通Javascript ok,jquery ok
  • 必须提供进度条(例如从ajax调用更新)
可能不相关,但我在服务器端使用ASP.NETMVC

谢谢

更新 是的,我知道这需要一个服务器端组件,但我可以提供。我对客户端脚本更感兴趣。(不过,也许有些解决方案会与服务器端实现联系在一起——我不知道)


只是澄清一下——它不一定是特定于.net的。我很高兴使用一个只附带(例如)PHP服务器端脚本的组件,并使用我自己的.net



感谢所有的答案-这里有一些非常有用的信息。最后,我接受了“AJAX uploader”——它不符合进度条的要求,但似乎没有什么可能(至少没有flash)。我想我也会根据这里的一些信息来研究创建我自己的系统的可能性——如果我运气好的话,我会发回的。

服务器端技术与您正在尝试的工作非常相关。这种事情需要服务器交互

我不知道任何现成的组件,但这可能会有所帮助

根据您的更新,您似乎正在寻找绑定到特定服务器技术的客户端组件,并确信可以轻松地将其转换为.NET。在我看来,这并不容易。要实现进度条,您需要一个文件上载侦听器。在Java中,我很幸运地通过使用和实现接口做了类似的事情。基本上,我已经遵循了这方面的说明。除了进度监听器之外,我还需要实现一个servlet,返回当前上传百分比,并在客户端使用一个进度条jQuery插件,我通过Ajax调用百分比servlet定期更新该插件。这些是简单的部分。正如我所评论的,您可以很容易地自己实现它们

最困难的部分是监听进度,这与服务器技术有很大不同。所以我建议你从这里开始。了解如何收听使用ASP.NETMVC上载的文件的进度。上面链接的文章是一个很好的起点。

我们使用它,它非常好,值得一试


编辑:出于某种原因,我以为我们使用了Uploadify,结果是这样的

大多数JavaScript实现中都有flash upload组件,因为它们提供了有关文件及其上载的更多信息。它允许您不断为进度条提供事件和事件框架。最受欢迎的当然是

在上传开始之前,Flash可以访问文件信息。使用纯JavaScript解决方案,在完整接收整个文件并保存到服务器硬盘驱动器之前,您只能访问服务器上文件流的长度

以下非常古老的经典ASP脚本提供了一个javascript可以轮询的文件,其中包含到目前为止在服务器上收到的已完成上传的百分比


它不优雅,只是做得很好。我还没有看到更现代的.net版本。

尝试asp.net web应用程序。

你根本没有提到价格要求,所以我将把Telerik控件扔到那里。我使用过它,它很容易实现。它们具有服务器端和客户端API、进度条、客户端验证,并且支持Ajax

演示站点:

我们已经在一些内部项目中使用了此功能,我认为无法满足您的非Flash进度显示标准。基于Flash的上传程序如此流行的原因是JavaScript在客户端web浏览器上受到了难以置信的限制:出于安全原因,JavaScript无法访问客户端硬盘上的任何文件(因此上传前不检查文件长度,也不读取要上传的文件本身的块),它在操作
控件的程度上受到很大限制(因为它可以在用户不知情的情况下自行选择和上载文件),并且它只能以“全部”或“无”提交的形式上载文件(因此没有进度报告)

即使你能解决这些客户端问题,据我所知,任何通用的web服务器都会等到收到整个上传文件后再将其传递到服务器端web应用程序,因此服务器端组件没有机会在收到每个数据块时更新状态


这似乎是您所能做的最好的事情。

我认为没有一个组件符合您的要求,因为据我所知,每个提供进度条的解决方案都是基于flash的。


但是,就像我使用的TWith2Sugars一样,它工作得很好,但没有进度条。

使用PHP的APC模块可以获得上传进度。这里有一篇关于如何设置的文章


显然,这需要PHP,但如果这对您来说是可能的,那么您已经准备好了。

是的,当然我意识到需要进行服务器端集成。我对查找预先创建的客户端内容感兴趣——脚本不关心是什么生成了JSON响应。然后从查找适当的进度条插件开始。您需要不到10行jQuery代码才能从JSON响应更新它。即使你找到了一个现成的插件,使它适合你的需要所需的配置代码也同样大。是的,我知道我可以自己做,但我想看看是否有现成的东西。因此有了这个问题。所有现成的东西都带有服务器端集成。正如kgiannakakis提到的,将一些现成的东西与您集成在一起