Vb.net 无法在FireFox中下载zip文件

Vb.net 无法在FireFox中下载zip文件,vb.net,chilkat,Vb.net,Chilkat,我正在使用zip组件从内存创建一个zip,并将该文件流式传输到下载。它工作了一段时间,但在FireFox中它不允许我下载该文件。以下是我正在使用的代码: ' NewZip initializes the zip object. It does not write ' the file. The "test.zip" file, in this case, will never be written. success = zip.NewZip("lib-files.zip") If (s

我正在使用zip组件从内存创建一个zip,并将该文件流式传输到下载。它工作了一段时间,但在FireFox中它不允许我下载该文件。以下是我正在使用的代码:


'  NewZip initializes the zip object.  It does not write
'  the file.  The "test.zip" file, in this case, will never be written.
success = zip.NewZip("lib-files.zip")
If (success <> True) Then
    'MsgBox(zip.LastErrorText)
    Exit Sub
End If
For Each oRow As Data.DataRow In oData.Tables(0).Rows
    If System.IO.File.Exists(Application("LibUploadedDocumentPath") & oRow("DocFileName").ToString) = True Then
        success = zip.AppendOneFileOrDir(Application("LibUploadedDocumentPath") & oRow("DocFileName").ToString, False)
        Dim entry As Chilkat.ZipEntry

        Dim fFile As FileInfo = New FileInfo(Application("LibUploadedDocumentPath") & oRow("DocFileName").ToString)
        Dim sNewFileName As String = oRow("DocName").ToString
        entry = zip.GetEntryByName(oRow("DocFileName").ToString)
        If (entry Is Nothing) Then
            MsgBox("Failed to find entry in .zip")
            Exit Sub
        End If
        'Dim sTestName As String = ""
        entry.FileName = sNewFileName & fFile.Extension.ToLower
    Else
        Response.Write("All the files are not found. Download aborted.")
        Exit Sub
    End If
Next
If (success <> True) Then
    'MsgBox(zip.LastErrorText)
    Exit Sub
End If
Dim Data As Byte()
Data = zip.WriteToMemory

Response.Clear()
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Length", Data.Length.ToString())
Response.AddHeader("Content-Disposition",
               "attachment; filename=""" & zip.FileName & """")
Response.BinaryWrite(Data)
Response.Flush()
Response.End()

'NewZip初始化zip对象。它不写
“文件。在本例中,“test.zip”文件永远不会被写入。
success=zip.NewZip(“lib files.zip”)
如果(成功是真的)那么
'MsgBox(zip.LastErrorText)
出口接头
如果结束
对于oData.Tables(0.Rows)中的每个oRow As Data.DataRow
如果System.IO.File.Exists(应用程序(“LibUploadedDocumentPath”)&oRow(“DocFileName”).ToString)=True,则
success=zip.AppendoneFileOrder(应用程序(“LibUploadedDocumentPath”)&oRow(“DocFileName”).ToString,False)
作为Chilkat.ZipEntry的昏暗入口
Dim fFile As FileInfo=新文件信息(应用程序(“LibUploadedDocumentPath”)&oRow(“DocFileName”).ToString)
Dim sNewFileName作为String=oRow(“DocName”).ToString
entry=zip.GetEntryByName(oRow(“DocFileName”).ToString)
如果(输入为Nothing),则
MsgBox(“在.zip中找不到条目”)
出口接头
如果结束
'Dim sTestName As String=“”
entry.FileName=sNewFileName&fFile.Extension.ToLower
其他的
Response.Write(“未找到所有文件。下载已中止。”)
出口接头
如果结束
下一个
如果(成功是真的)那么
'MsgBox(zip.LastErrorText)
出口接头
如果结束
作为字节()的Dim数据
Data=zip.WriteToMemory
答复:Clear()
Response.ContentType=“应用程序/八位字节流”
Response.AddHeader(“Content Length”,Data.Length.ToString())
Response.AddHeader(“内容处置”,
“附件;文件名=”&zip.filename&“”)
Response.BinaryWrite(数据)
Response.Flush()
答复:End()

在FireFox中,它说,“源文件无法保存,因为无法读取源文件”。我在Chrome上试用过,它允许我在那里下载。不确定它是正在使用的组件,还是我需要添加的其他东西。有什么想法吗?

可能会将内容类型更改为“application/zip”

Response.ContentType=“应用程序/zip”