cfheader cfcontent移动浏览器下载失败

时间:2012-06-07 06:35:56

标签: android iphone ipad coldfusion

我正在提供.ePub文件供下载而不向客户端显示网址。下面的代码适用于PC / Mac上的任何浏览器,但不适用于移动浏览器,至少在Android中,这是我目前测试的内容。我每次都收到“下载不成功”的消息。任何想法???

代码:

<cfheader name="content-disposition" value="attachment;filename=#authStuff.lastname#-#theTitle#.ePub" /><cfcontent type="application/unknown" file="d:\home\sample.net\bookSource\#book.ePub#">

2 个答案:

答案 0 :(得分:0)

我见过的所有例子都使用了附件之间的空格;和文件名,所以你可以尝试:

<cfheader name="content-disposition" value="attachment; filename=#authStuff.lastname#-#theTitle#.ePub" />

此外,使用FireBug或Fiddler确保标题未经更改。桌面浏览器是否会提示您使用正确的文件名进行保存?

编辑:刚刚在ios上用pdf尝试了你的代码并且很高兴地使用了pdf,因此空间可能是一个红色的鲱鱼,但它让我觉得可能值得尝试下面的代码来试着看看它是不是一个ePub的东西或标题的东西:

<cfheader name="content-disposition" value="attachment;filename=something.pdf" />
<cfcontent type="application/unknown" file="#expandpath('something.pdf')#">

答案 1 :(得分:0)

尝试对您的代码进行以下两项更改:

1)将内容处理文件名用引号括起来(使用加倍的引号来转义它们,或者 #Chr(34)#,这样它们就不会与你的值属性引号混淆)。

2)使用 application / octet-stream 作为内容类型(应该是应用程序/ epub + zip,但Android似乎无法识别它)。

这似乎至少适用于Android 2.3.5。

<cfheader name="content-disposition" value="attachment; filename=#Chr(34)##authStuff.lastname#-#theTitle#.ePub##Chr(34)#">
<cfcontent type="application/octet-stream" file="d:\home\sample.net\bookSource\#book.ePub#">