0

PHP 経由で「強制ダウンロード」しようとしましたが、得られるのは奇妙なシンボルだけです。

ヘッダー (「application/typeofmyfile」) とヘッダー (「Content-Disposition」) を追加しようとしました...ここからの他の多くの投稿から他の多くのものを追加しようとしましたが、何もありません

私はこれを持っています:

$f_location = "path/myfile.nl2pkg";
$f_name = "myfile.nl2pkg";


header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$f_name); //Here also tried basename($f_name) but nothing
header("Content-Length: ".filesize($f_location));    
header("Content-Transfer-Encoding: binary");

ユーザーが「ダウンロード」ボタンをクリックすると、ajaxを使用してページに送信してダウンロードを強制し、データベースにデータを入れてからメインページを更新するため、このようにしています。

ヘッダーに取り組むのは初めてで、何か間違ったことをしているのかどうかわかりません。

4

1 に答える 1

0

あなたのヘッダーコードは問題ないようです。問題は別の場所にあるようです。

コードをデバッグするには、headers_sentを使用して、ヘッダーが既に送信されているかどうかを確認します。headers_listを使用して、送信済みのヘッダーを確認することもできます。

if (headers_sent()) {
  var_dump(headers_list());
  die('Headers have already been sent');
  exit;
}

ヘッダーを定義する直前にこれを使用すると、問題の原因が見つかる可能性があります。

于 2014-04-23T11:29:21.403 に答える