1

クライアントに URL を表示せずに、ダウンロード用に .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#">
4

2 に答える 2

0

私が見て使用したすべての例では、添付ファイルの間にスペースがあります。とファイル名なので、試すことができます:

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

また、FireBug または Fiddler を使用して、ヘッダーが変更されていないことを確認します。デスクトップ ブラウザで、正しいファイル名で保存するように求められますか?

編集:PDFを使用してiosでコードを試してみたところ、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 に答える
0

コードに次の 2 つの変更を加えてみてください。

1) content-disposition ファイル名を引用符で囲みます (二重引用符を使用してエスケープするか、値属性の引用符と混同しないように#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 に答える