我正在提供.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#">
答案 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#">