代码之家  ›  专栏  ›  技术社区  ›  Renshi

cfzip有没有办法暂停页面处理,直到zip创建完成?

  •  2
  • Renshi  · 技术社区  · 7 年前

    我有一些代码,可以创建某个图像的zip文件,然后在该代码之后,它会尝试下载该文件。当zip文件非常小时,这种方法可以很好地工作,但当它较大时,它会在实际创建完成之前尝试下载该文件。

    就像这样

    <CFZIP code here>
    
    <cfset TheFileName = "#ReReplace(GetImage.ItemNum, " ", "-", "ALL")#.zip">
    
    <cfheader name="Content-disposition" value="attachment;filename=#TheFileName#">
    <cfcontent type="application/zip, application/x-zip, application/x-zip-compressed, application/octet-stream, application/x-compress, application/x-compressed, multipart/x-zip" file="#APPLICATION.ProductImageDirectory#\full-brands\#TheFileName#">
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   user9263373    7 年前

    您的代码有几个问题。

    首先,mime类型列表应该用分号分隔 ; 而不是逗号 , 如文件所述 here .

    所以不是这个

    <cfcontent type="application/zip, application/x-zip, application/x-zip-compressed, application/octet-stream, application/x-compress, application/x-compressed, multipart/x-zip" file="#APPLICATION.ProductImageDirectory#\full-brands\#TheFileName#">
    

    你应该把它改成这个

    <cfcontent type="application/zip; application/x-zip; application/x-zip-compressed; application/octet-stream; application/x-compress; application/x-compressed; multipart/x-zip" file="#APPLICATION.ProductImageDirectory#\full-brands\#TheFileName#">
    

    第二,虽然这可能不是一个问题,但您的 <cfcontent> 标签因为我真的不知道,我真的不能说你应该删除其中任何一个。但是,我不确定您的列表中是否有与其他人冲突的内容?我个人只使用了 application/x-zip-compressed 而且似乎效果很好。因此,底线可能是调整和实验,以找到最有效的方法。

    祝你好运,希望这能有所帮助。

        2
  •  -1
  •   Renshi    7 年前

    我发现了问题。我正在将zip文件写入一个目录,然后尝试从另一个目录下载它。奇怪的是,我本以为会有一条404 not found消息,但它基本上只是给了我一个空的zip文件。不管怎样,问题都解决了。