1

我正在提供一个 .ePub 文件以供下载,而不向客户端显示 url。下面的代码适用于 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#">
4

2 回答 2

0

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

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

2) 使用application/octet-stream作为内容类型(应该是 application/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#">
于 2012-06-11T08:55:34.897 回答
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')#">
于 2012-06-07T14:15:08.890 回答