0

正しい名前で画像を保存するようブラウザに促すのに問題があります。

  • 私のウェブルートディレクトリは/var/www/html
  • 画像 (.jpg) があります/var/www/client/image.jpg

これら2つのことは、さまざまな理由で変更できません

/var/www/htmlファイルを表示するのではなく、ブラウザにダウンロードさせるために次のことを行っているファイルdImage.phpがあります。

$fileName = '/var/www/client/image.jpg';    

header('Content-disposition: attachment; filename="' . $fileName . '"');
header('Content-type: image/jpeg');
readfile($fullpath);

IE では、dImage.jpgをダウンロードするように求められます

Firefox では、JPEG 画像であるdImage.phpをダウンロードするように求められます。そこにファイルをダウンロードすると、.phpファイルとして保存され、拡張子が変更されると、画像として適切に開きます。

使用しているブラウザに関係なく、ファイルをimage.jpgとして保存するようにブラウザに促すことはできますか?

4

1 に答える 1

0

あなたが示したコードは、「/var/www/client/image.jpg」という名前のファイルを生成しますが、これは明らかに有効なファイル名ではありません。そのため、ファイルはスクリプトにちなんで名付けられます。

$fileName出力ファイルの目的の名前です。
$fullpath目的のファイルへの絶対パスである必要があります。php の相対パスは、HTML のパスのようには機能しません。'/' は、ドキュメント ルート フォルダーを指し示しません。

于 2013-06-09T14:16:42.430 に答える