2

ドキュメントをダウンロードするために典型的な PHP コードを使用しています。

  header('Content-Type: ' . $mimeTypes[$fileext]); 
  header('Content-Disposition: attachment; filename="' . $filename . '"');
  header('Content-Transfer-Encoding: binary');
  header('Accept-Ranges: bytes');
  header('Cache-Control: private');
  header('Pragma: private');

  readfile($filepath);

docs.google.com で開こうとする .doc ファイルを除いて、すべて正常に動作します-ダウンロード/名前を付けて保存ダイアログが開きますが、許可がないために失敗します-これは、Web サイトのルートの外部からファイルを提供しているためです。

では、docs.google をバイパスして、ファイルの MIME タイプに関係なく、すべてのブラウザに名前を付けて保存ダイアログを表示させるにはどうすればよいでしょうか?('doc' => 'application/msword')

私は無駄に次のことを試しました:

  1. .htaccess ファイル内:

    <FilesMatch "\.(?i:doc)$">
        ForceType application/octet-stream
        Header set Content-Disposition attachment
    </FilesMatch>
    
  2. .htaccess ファイル内:

    AddType application/octet-stream .doc
    
  3. PHPスクリプトで:

    header('Content-Type: application/force-download');
    
4

2 に答える 2

1

これをヘッダーに追加します。

header("Content-type: application/force-download");
于 2013-04-20T20:10:23.337 に答える
0

次のphpは私のために働いた

header("Cache-Control: private");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=".$file."");
header("Content-Transfer-Encoding: binary");
header("Content-Type: binary/octet-stream"); 
readfile ($link);

PS - 変数でのみファイル拡張子を使用したため、 MIME タイプ$fileについて言及する必要はありません...

お役に立てれば :)

于 2016-07-24T18:08:34.910 に答える