【问题标题】:How to create a File Upload with progress data?如何使用进度数据创建文件上传?
【发布时间】:2012-08-07 19:34:18
【问题描述】:

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

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

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

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

感谢您的时间和帮助。

【问题讨论】:

  • 你真的搜索过互联网吗,因为我在谷歌中使用这个 C# 进行了搜索,创建了一个带有进度条的文件上传并返回了大量的例子。如果你可以在这里查看链接,请查看 dotnetfunda.com/articles/…您对.aspx代码中的标记语言以及示例中的代码不熟悉。我建议您研究此代码并通过实验粘贴在此链接中的示例来学习
  • 您好 DJ KRAZE,感谢您的回复。是的,我做了,我搜索了很多,确实我已经标记了很多资源,但没有一个包含有用的信息、很多插件和第 3 方的东西,这不是我想要的。另一方面,上面的链接没有太多关于进度条如何工作的信息。我并不是说这不起作用,但有些事情没有得到解释,而且由于我正在开发的网络的重要性,我不能使用或编写一些我不确定它是如何工作的东西。感谢您的回复和您的时间。

标签: c# jquery asp.net ajax file-upload


【解决方案1】:

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

【讨论】:

  • 嗨@cereallarceny!感谢您的回复!我查看了那个插件,但正如我之前所说,由于网站的重要性,我更喜欢自己编写一个上传进度。但是我在谷歌上搜索了更多,我发现实时进行某种上传进度的最佳方法是使用隐藏的 iframe。我找到了这个链接mattberseth.com/blog/2008/07/…,但我无法下载源代码。我会尝试做类似的事情。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2012-09-12
      • 2017-07-26
      相关资源
      最近更新 更多