| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 娱乐休闲 | 软件下载 | 在线视频 | 请您留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • javascript模拟游戏中的…

  • javascript制作闪烁的边…

  • javascript制作浮动的工…

  • javascript设计漫天雪花

  • javascript设计网页中的…

  • 用javascript实现利用FL…

  • javascript实例教程(20)…

  • javascript实例教程(20)…

  • javascript实例教程(20)…

  • javascript实例教程(20)…

  • Q
    您现在的位置: 我是IT人 >> 网站制作 >> ASP.NET >> 文章正文
    在ASP.NET中跟踪和恢复大文件下载         
    在ASP.NET中跟踪和恢复大文件下载
    作者:网络 文章来源:转载 点击数: 更新时间:2005-8-10
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:

     If bMultipart Then
      ' 如果是多部分范围请求,
      ' 我们还必须计算出将发送的最后一个中间头信息的长度
      iResponseContentLength +=MULTIPART_BOUNDARY.Length
      ' 8 是破折号和换行符的长度
      iResponseContentLength += 8
     Else
      ' 不是多部分下载,因此我们必须说明初始HTTP头信息的响应范围
      objResponse.AppendHeader( HTTP_HEADER_CONTENT_RANGE, "bytes " & _
      alRequestedRangesBegin(0).ToString & "-" & _
      alRequestedRangesend(0).ToString & "/" & _
      objFile.Length.ToString)
      'End If
      ' 范围响应
      objResponse.StatusCode = 206 ' 局部响应
     Else
      ' 这不是范围请求,或者被请求的范围实体ID与当前的实体ID不匹配,
      ' 因此开始新的下载
      ' 指明文件完成部分的大小等于内容的长度
      iResponseContentLength =Convert.ToInt32(objFile.Length)
      ' 返回正常的OK状态
      objResponse.StatusCode = 200
     End If
     ' 接下来服务器必须发送几个重要的响应头信息,例如内容长度、Etag、和文件的内容类型:
     ' 把内容长度写入响应
     objResponse.AppendHeader( HTTP_HEADER_CONTENT_LENGTH,iResponseContentLength.ToString)
     ' 把最后修改日期写入响应
     objResponse.AppendHeader( HTTP_HEADER_LAST_MODIFIED,objFile.LastWriteTimeUTC.ToString("r"))
     ' 告诉客户端软件我们接受了范围请求
     objResponse.AppendHeader( HTTP_HEADER_ACCEPT_RANGES,HTTP_HEADER_ACCEPT_RANGES_BYTES)
     ' 把文件的实体标签写入响应(用引号括起来)
     objResponse.AppendHeader(HTTP_HEADER_ENTITY_TAG, """" & objFile.EntityTag & """")
     ' 把内容类型写入响应
     If bMultipart Then
      ' 多部分消息有这种特殊的类型
      ' 在例子中文件实际的mime类型在以后才写入响应
      objResponse.ContentType = MULTIPART_CONTENTTYPE
     Else
      ' 单个部分消息拥有的文件内容类型
      objResponse.ContentType = objFile.ContentType
    End If

     


      下载所需要的一切都准备好了,可以开始下载文件了。你将使用FileStream对象从文件中读取字节块。把FileInformation实例objFile的State属性设置为fsDownloadInProgress。只要客户端保持连接,服务器就从文件中读取字节块并发送给客户端。对于多部分下载,这段代码会发送特定的头信息。如果客户端中断连接,服务器就把文件状态设置为fsDownloadBroken。如果服务器完成了被请求范围的发送过程,它会把状态设置为fsDownloadFinished(见下载代码)。

    上一页  [1] [2] [3] [4] [5] [6] 下一页  

    文章录入:小秦    责任编辑:小秦 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |