0

我正在开发一个 Web(使用 asp.net 和 c#),它具有来自 asp.net 的 FileUpload 控件。上传的东西很完美,据我所知,我无法使用 asp.net 的 FileUpload 控件显示进度数据(%、传输的字节数、上传速度、经过的时间、剩余时间、进度条),因为它不是异步的。

我在互联网上搜索了很多(真的),但我没有找到我正在寻找的东西,而且太多的信息已经成为一个很大的混乱,因为我不确定我必须使用什么。

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

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

感谢您的时间和您的帮助。

4

3 回答 3

1

网上有很多演示代码可以在 c# 中显示带有文件上传控件的进度条,它们中的大多数在本地系统上都可以正常工作,但不能在实时服务器上工作,因为你不能使用 FileUpload 控件为了你想做的事。当用户发布文件时,您必须将其视为查询字符串参数。它作为一个 Http 请求。如果你想做一个进度条,你会想要研究可以与服务器异步交互的东西。

于 2012-10-08T06:56:08.553 回答
1

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

于 2012-08-07T19:39:12.953 回答
0

如果您不想使用任何依赖 Flash / Html 5 的 3rd 方,请查看这篇文章:

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

这是可能的(如果您使用.NET 4.5 GetBufferedInputStream 将使您的生活更轻松),但正如您将看到的那样,这并不容易。

基本上,如果您想要一个与每个浏览器完全兼容的带有进度条的文件上传,您需要处理这个服务器端并提供一个 url,客户端(浏览器)可以在其中定期检查 ajax 的进度。

于 2014-01-08T19:31:31.963 回答