文件下载的问题 第一次正常第二次就出错了?!!

Stvan 2005-07-07 03:25:13
代码如下:
Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
Dim strFile As String
strFile = "D:\2772311296623764.jpg"

Response.Clear()
Response.ClearHeaders()
Response.ContentEncoding = System.Text.Encoding.UTF8
Response.ContentType = "application/octet-stream"
Dim fi As New System.IO.FileInfo(strFile)
Response.AddHeader("Content-Disposition", "attachment; filename=" & HttpUtility.UrlEncode(fi.Name))
Response.AddHeader("Content-Length", fi.Length.ToString())
Dim tmpbyte(1024 * 8) As Byte
Dim fs As System.IO.FileStream
fs = fi.OpenRead()
Dim count As Integer
While fs.Read(tmpbyte, 0, tmpbyte.Length) > 0
Response.BinaryWrite(tmpbyte)
Response.Flush()
End While

fs.Close()
Response.End()
End Sub

运行后,第一次点击LinkButton弹出下载dialog,正常
然后点击保存按钮之后,再点击LinkButton就出错了,说没有权限显示此页面
debug后台代码发现第二次点击LinkButton时,后台代码压根地就没有响应
我晕

哪位老大看看是啥问题:)
...全文
455 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Stvan 2005-07-08
  • 打赏
  • 举报
回复
问题解决了
我把
While fs.Read(tmpbyte, 0, tmpbyte.Length) > 0
Response.BinaryWrite(tmpbyte)
Response.Flush()
End While
改为Response.BinaryWrite(tmpbyte)
一次读完就没有问题了,很是怪异

to:mao5000(怕鱼的水)
我这个没有放在框架里。用iframe解决也可以的

总之,谢谢大家 结贴!
mao5000 2005-07-07
  • 打赏
  • 举报
回复
to: cctvb6690(111)

你把你的程序放到一个框架中看看有没有问题。。
mao5000 2005-07-07
  • 打赏
  • 举报
回复
不知道就直接up,!!!不要误人子弟!!!

遇到这个问题的原因,
你的下载页面是在框架里,不要放在框架中就没问题了。。

但是有的时候在框架中也不会出现问题,比如有个别的xp系统。。。

上次花了200分也没有解决这个问题,并且一些同行们拿回原程序测试也是这样的结果,没有人分析出为什么会有问题,只能说ie有问题。。


有一个具体的解决方法,就是绕过这个问题。。在页面建立一个iframe,每次提交到iframe中去。。就可以解决这个问题了。
cctvb6690 2005-07-07
  • 打赏
  • 举报
回复
Dim path As String
Dim FileSize As Long
Dim Fs As FileStream

Response.Clear()
path = Server.MapPath("111.mp3")
Fs = New FileStream(path, FileMode.Open, FileAccess.Read)
FileSize = Fs.Length
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename=111.mp3")
Response.AddHeader("Content-Length", FileSize.ToString())

Dim FileBuffer(FileSize) As Byte
Fs.Read(FileBuffer, 0, FileSize)
Response.BinaryWrite(FileBuffer)
Response.End()
Fs.Close()
Fs = Nothing
Stvan 2005-07-07
  • 打赏
  • 举报
回复
第一次点击LinkButton 可以弹出下载dialog,只要不点打开或保存按钮
再点也没有问题,能正常弹出下载dialog
但是如果点击了打开或保存按钮,然后再点LinkButton ,就出错了
后台代码压根地就没有响应

ps: FS的问题 FS是什么?不知道啊 :(
UT_Test 2005-07-07
  • 打赏
  • 举报
回复
不排除IIS有问题的可能.
如果第一次没问题,而第二次有问题的话.FS的问题
Stvan 2005-07-07
  • 打赏
  • 举报
回复
HyperLink 我试过了
直接把url指向要下载的文件
但是这样不能对所有类型的下载文件都弹出下载dialog,有的ie能解析的就直接用ie打开了
还有就是对aspx页面,点击后没有反应
不知是我的做法有问题还是我的iis设置有问题
所以用LinkButton 来实现,呵呵
jadeface 2005-07-07
  • 打赏
  • 举报
回复
文件下载用 LinkButton 实现,感觉比较怪,一般都用 HyperLink 解决。
Stvan 2005-07-07
  • 打赏
  • 举报
回复
Page_Load没有写代码,所有的下载操作都在这个LinkButton1.Click事件里
chengbo1983 2005-07-07
  • 打赏
  • 举报
回复
不太清楚
看看你的Page_Load代码呢
Stvan 2005-07-07
  • 打赏
  • 举报
回复
在线等。。。。
该工具支持多个型号,包括但不限于idata95w、idata95v以及iData95等。它是一种pda刷机软件,即个人数字助理(Personal Digital Assistant)设备的固件升级程序。刷机通常指的是将设备的固件或者操作系统进行更新或替换的过程,可以用来修复系统问题、提升设备性能或更新新功能。 刷机工具的操作过程通常包括连接设备到电脑、选择正确的固件版本、执行刷机程序以及等待过程完成。在进行刷机之前,用户需要确保下载的刷机工具版本与自己的设备型号相匹配,并严格遵循操作说明,以避免刷机失败导致设备变砖(即设备无法启动)。 在压缩包文件列表中仅提到了"A5V2R2刷机工具",这可能表明该工具是为特定版本的idata95系列产品设计的。可能是指固件的版本号,比如A5V2R2可能代表某个版本的固件,其中A5可能表示版本类型,V2表示版本号,R2可能表示修订级别。 刷机工具有时还包含有解锁Bootloader(引导程序)的功能,这在某些设备中是进行刷机前的必要步骤。Bootloader是设备启动时首先运行的一段代码,负责加载操作系统。在一些设备上,Bootloader被锁定,以防止非授权的系统更改。解锁Bootloader可能会清除设备上的所有数据,因此这个过程需要谨慎操作。 刷机工具的使用通常涉及以下步骤: 1. 准备工作:备份好设备上的个人数据,确保数据安全。 2. 下载对应的刷机工具:根据设备型号下载相应的刷机工具,确保来源的安全可靠。 3. 启动设备至下载模式:这通常需要在设备关闭状态下同时按住特定的几个按键来进入。 4. 连接设备到电脑:使用USB数据线将设备连接到电脑。 5. 运行刷机工具:打开刷机工具软件,通常会有一个简单的用户界面指导用户完成刷机过程。 6. 执行刷机程序:根据软件指示选择相应的固件文件,然后软件会自动完成刷机过程。 7. 刷机后处理:刷机完成后,通常需要手动启动设备或进行额外的配置以确保设备正常运行。 刷机不仅在技术上有一定风险,而且可能会使设备的保修失效。因此,如果没有足够的经验或者不确定是否需要刷机,建议不要轻易尝试。此外,刷机也可能导致设备的某些功能无法使用或不稳定,所以在进行刷机之前应该进行充分的了解和准备。"
“1-考试报名系统1”项目是一个数据结构课程设计,旨在创建一个考试报名系统。该项目由汪明杰同学在软件学院软件工程专业,同济大学进行,指导教师为张颖。 本文档详细阐述了项目的分析、设计、实现和测试过程。首先,项目背景指出考试报名系统对学校教务管理的重要性,特别是在处理大量考试人员时的挑战。接着,项目需求分析部分明确了系统应具备的功能,包括用户友好性、数据处理能力等。 在项目要求中,功能要求详细列出了系统应具备的各个功能,如: 1.3.1 功能要求:这可能包括考生注册、考试选择、报名、取消报名、查询考试信息等功能。 1.3.2 输入格式:可能涉及考生信息输入的格式规范,如姓名、学号、选择的考试科目等。 1.3.3 输出格式:可能涉及打印报名成功通知、查询结果展示等输出信息的格式。 项目设计部分讨论了数据结构和类的设计: 2.1 数据结构设计:可能使用数据结构如链表来存储和管理考生信息和考试数据。 2.2 类设计:包括结点类(ListNode)、双向链表类(List)以及数据库类(DataBase),用于构建系统的核心结构。 在项目实现章节,详细描述了各个功能的实现逻辑和代码,包括: 3.1 项目主体功能:涵盖系统的整体流程和代码实现。 3.2 项目初始化:如何加载初始数据,包括读取文件和手动输入。 3.3 插入数据:添加新的考生信息或考试报名。 3.4 删除数据:取消考生的报名。 3.5 修改数据:更新考生信息或考试选择。 3.6 查询数据:根据特定条件查找考生信息或考试详情。 3.7 统计数据:可能包括统计报名人数、考试科目选择情况等。 最后,项目测试部分涵盖了各种测试用例,确保系统的正确性和稳定性,如: 4.1 项目初始化测试:验证数据加载功能。 4.2 插入、删除、查找、修改和统计测试:分别检查各功能是否正常工作。 4.7 边界测试:测试特殊情况,如插入已存在的考生、删除不存在的考生等。 这个“1-考试报名系统1”项目涵盖了软件开发的完整生命周期,从需求分析到设计、实现和测试,体现了软件工程中的核心原则,特别是数据结构的应用和系统功能的实现。

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧