2012-08-07 95 views
0

我正在开发一个网站(使用asp.net和c#),它具有asp.net的FileUpload控件。上传的东西是完美的,据我所知,我无法使用asp.net的FileUpload控件显示进度数据(%,传输的字节数,上传速度,时间,剩余时间,进度条),因为它不是异步的。如何使用进度数据创建文件上传?

我在互联网上搜索了很多(真的),我没有找到我要找的东西,太多的信息变得很混乱,因为我不确定我必须使用什么。

在我的网页上我有一个名为“UploadFile.aspx”的文件,它有一个FileUpload控件和一个处理上传的按钮。在代码隐藏(UploadFile.aspx.cs)上,我拥有所有的服务器端逻辑(将文件上传到特定文件夹,将有关该文件的信息存储到数据库等等),我不想改变这一点。

我需要知道的是如何在上载文件时向用户显示进度数据?我无法使用第三方应用程序,因为这是用于重要的商业网站。这对我来说不是问题,如果我必须学习javascript/jQuery /不管但是我真的有点迷路,我不知道如何开始。

感谢您的时间和你的帮助家伙。

+0

你真的搜索了互联网,因为我在谷歌搜索使用此C#创建一个文件上传与进度条,并已返回吨的例子..这里是链接,你可以看看 http://www.dotnetfunda。 com/articles/article556-creating-progress-bar-for-fileupload-control.aspx如果你不熟悉.aspx代码中的标记语言以及代码背后的代码..我建议你研究这段代码并且从试验中学习粘贴在这个链接中的样本 – MethodMan 2012-08-07 19:37:57

+0

嗨DJ KRAZE,谢谢你的回复。是的,我做了,我搜查了很多,确实我已经标记了很多资源,但没有一个提供有用的信息,很多插件和第三方的东西,这不是我想要的。 另一方面,上面的链接没有太多有关进度栏如何工作的信息。我并不是说这不起作用,但有些东西没有解释,而且由于我正在开发的网络的重要性,我不能使用或编码我不确定它的工作方式的东西。 感谢您的回复,你的时间。 – 2012-08-07 23:19:56

回答

1

这里有一些非常酷的解决方案。当然,你可以编码你自己的,但我建议使用像Plupload这样的jQuery插件。如果你需要帮助设置它,你可以阅读他们的documentation

+0

嗨@cereallarceny!感谢您的回复!我看了一下这个插件,但正如我之前所说,由于网站的重要性,我宁愿自己编写一个上传进度。然而,我在google上搜索了一些,我发现实时进行某种上传过程的最佳方式是使用隐藏的iframe。我发现这个链接http://mattberseth.com/blog/2008/07/aspnet_file_upload_with_realti.html,但我无法下载源代码。我会尽力去做那样的事情。 – 2012-08-08 03:37:47

+0

听起来不错!无论适合你的是最好的解决方案。 – cereallarceny 2012-08-08 14:28:37

1

在网上有很多很多演示代码可以用来显示进度条和c#中的文件上传控件,它们大多数在本地系统上运行良好,但从不在实时服务器上运行,因为你无法使用FileUpload控件来执行你想要做的事情。当用户POST一个文件时,你必须把它想象成查询字符串参数。它作为一个Http请求。如果你想做一个进度条,你需要研究一些可以异步与服务器交互的东西。

0

如果你不想使用依赖于闪存/ HTML 5的任何第三方,请看看这篇文章:如果你使用

http://vanacosmin.ro/Articles/Read/AjaxFileUpload

这是可能的(和.NET 4.5 GetBufferedInputStream会让你的生活更轻松),但是这不是很容易,就像你看到的那样。

基本上,如果你想要一个与每个浏览器完全兼容的进度条的文件上传,你需要处理这个服务器端并给出一个URL,客户端(浏览器)可以定期检查ajax的进度。

相关问题