2012-01-13 9 views
6

私が書いたファイルダウンロードスクリプトがあります。これは、public_htmlの下のファイルを読み込み、ユーザーがログインしているかどうかを確認してダウンロードできます。ダウンロードするための有効なファイルです。PHP:ダウンロードファイルのスクリプトがiPad上で動作しない

私が最近遭遇した問題は、iPad上でリンクがクリックされたときに何もしないことです。

すべてのチェックが行われた後

例ダウンロードファイルコード:

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private",false); 
header("Content-Type: application/msword"); 
header("Content-Disposition: attachment; filename=\"file.doc\";"); 
header("Content-Length: 50688"); 

readfile(SITE_PATH .'/files/file.doc'); 

このスクリプトはテストの結果、複数のブラウザでPC、Mac、Linuxのマシン上で確認された(FF、オペラ、IE6-9、クローム、Safari)、すべてが正常に動作するように見えるので、iPadとは異なるものでなければなりません。

私はそれが実際にはファイルをダウンロードするためのファイル構造を持たないiPadとは関係があると思いますが、私は確信していません。

誰もがこの問題に遭遇しましたか?もしそうなら、修正はありますか? iOSのSafariは、ファイルのダウンロードをサポートしていません

+0

無関係:2つのContent-Typeヘッダーフィールドがあります。一つを選ぶ。また、Content-Transfer-EncodingはHTTPヘッダーフィールドではありません。 –

+0

@JulianReschkeがそれらを削除したが、効果がなかったようだ。反映する質問を更新しました。 – Nick

答えて

11

..

更新:しかし、あなたがiPad上で.docファイルを開くために探している場合は[はい..あなたはそれを行うことができます...

使用次 -

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private",false); 
header("Content-Type: application/msword"); 


readfile('file.doc'); 

あなたのコード内での唯一の違いや鉱山、私はただ、これらのヘッダーを削除添付ファイル のヘッダを削除される -

header("Content-Disposition: attachment; filename=\"file.doc\";"); 
header("Content-Length: 50688"); 

実際には、オペレーティング・システムはiOSのは、このようなダウンロード用のヘッダーを追加しないであれば、あなたは、クライアントオペレーティングシステムを確認することができます -

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private",false); 
header("Content-Type: application/msword"); 

if (!Operating_System_Is_IOS) 
{ 

    header("Content-Disposition: attachment; filename=\"file.doc\";"); 
    header("Content-Length: 50688"); 

} 

readfile(SITE_PATH .'/files/file.doc'); 
+0

通常、iPadはこれらの文書を開きます(直接リンクされている場合)。私はその行動を模倣するために何もできませんか?すなわち、ダウンロードしようとする代わりに開いている。 – Nick

+0

更新された回答を確認してください! – Saurabh

+0

素晴らしい、ちょうど私が探していた、ありがとう:) – Nick

0

をあなたはファイルにアクセスできないようにAppleがiOSデバイスをロックダウンしています構造。そのため、彼らはファイルのダウンロードを無効にしています。

-1

あなたはGoodReaderのようなサードパーティのアプリケーションにリンクを貼り付けるように強制することができます。 ブラウザでdocファイルを表示できるようにします。

関連する問題