【问题标题】:What are the ways to send files from client's browser to server in asp.net?在asp.net中将文件从客户端浏览器发送到服务器的方法是什么?
【发布时间】:2011-05-30 10:39:45
【问题描述】:

我正在寻找将文件从浏览器发送到服务器的可能方法。 一种明显的方法是使用带有 enctype='multipart/form-data' 的表单。 不知道有没有其他办法。

我问你这个问题的原因是这个文件上传者:http://aspnetajax.componentart.com/control-specific/upload/features/core_features/WebForm1.aspx

它不是基于闪存的,但它以一种为您提供进度条的方式发送文件,但是当您发送带有 enctype='multipart/form-data' 的表单的文件时,整个文件将被发送到服务器,因此您实际上无法显示上传过程的进度条。

【问题讨论】:

    标签: javascript asp.net html


    【解决方案1】:

    您实际上可以获得一个常规文件上传的进度条,但由于服务器一次只为每个用户处理一个请求,您必须使用无会话请求来向服务器询问上传进度。

    因此,您需要在服务器上设置一种不使用用户会话来识别上传的方法,以及一种在不同线程之间传达上传状态的方法。这使您能够设置一个无会话页面,该页面可以获取特定上传的状态并将其返回。

    在上传页面中你发送上传请求,然后每隔一段时间开始向无会话页面发送请求,并显示上传状态。

    【讨论】:

    • 通过使用 enctype='multipart/form-data' 我可以在服务器上逐步接收文件?
    • 如何确定客户端上的文件大小?您需要 HTML5 API 来处理文件,不是吗?
    • @Pointy:您无法在客户端确定文件大小,而是在服务器端确定文件大小,然后通过无会话页面将其传回。
    • 啊 - POST 标头和/或 MIME 内容具有内容大小。好的,这是有道理的。
    【解决方案2】:

    这是一个堆栈溢出问题,其中包含一些有用的链接。

    Upload large files in .NET

    相信你可以编写自己的http模块来实现有进度的上传。这是一个示例的链接

    http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/

    希望这会有所帮助。

    鲍勃

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-02
      • 2020-03-06
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      相关资源
      最近更新 更多