0

FTPプロトコルを介してリモートNASハードディスク内のファイルをスキャンし、jsonファイルを生成し、javascriptを介してブラウザにそれらのファイルをリストするPHPがあります。

ユーザーが mp4、jpg、および多くのブラウザーで知られている形式へのリンクをクリックすると、ブラウザーはコンテンツをダウンロードする代わりにコンテンツを開きます。

これで、PHP または .htaccess を使用してヘッダーを変更してブラウザに強制的にファイルをダウンロードさせることができることはわかっていますが、ファイルはリモートの場所にあり、FTP 経由でしかアクセスできないため、PHP または .htaccess を実行することはできません。 .

PHPでこのヘッダーのバリエーションを試しました:

header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: Binary");
header("Content-Disposition: attachment; filename=\"$file\""); 

また

header("Content-Description: File Transfer"); 
header("Content-Type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=\"$file\"");

また

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/image");
header("Content-Transfer-Encoding: binary");

すべての末尾:

header("Location: $url");

(url はftp://user:password@dyndns.org/folder/file.mp4 ) ですが、ダウンロードする代わりに常にブラウザーでファイルを開きます (もちろん、認識されたファイル拡張子で)

何か案は?ありがとう

4

1 に答える 1

0

リダイレクトを使用すると、以前のヘッダーが機能しない場合があります。代わりに、リダイレクトする代わりに PHP 経由で提供することをお勧めします。

header("Content-type: octet/stream");
header("Content-disposition: attachment; filename=".$file);
header("Content-Length: ".filesize($file));
readfile($file);

ただし、これは独自の帯域幅を使用することに注意してください。ただし、リモート ホストで動作を強制する方法はありません。

于 2013-07-08T08:05:47.757 に答える