- ベストアンサー
日本語ファイルのリネームと保存
ファイルアップデートで日本語ファイル名をリネームしてデータベースで対応付けて保存するプログラムを作成しました、そのファイルをリンクしてダウンロードする場合に元の日本語ファイル名で自動的にリネームしてPC側で保存する方法はないでしょうか。 例えば「あああ.txt」を「a.txt」にリネームして <a href="a.txt">あああ.txt</a> という風にしています、これをクリックするとa.txtになってしまいますが、あああ.txtで表示・保存するようにしたいのですが、何かうまい方法はないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでどうでしょう? <? $f=$_REQUEST["f"]; $rename=Array("aaa.txt"=>"あああ.txt","bbb.txt"=>"びびび.txt"); if(!empty($f)){ if(empty($rename[$f])){ print "unknown file."; exit; }elseif(!file_exists($f)){ print "not found."; exit; }else{ header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"{$rename[$f]}\""); readfile($f); } }else{ print <<<eof <a href="{$_SERVER["PHP_SELF"]}?f=aaa.txt">あああ.txt</a> <a href="{$_SERVER["PHP_SELF"]}?f=bbb.txt">びびび.txt</a> eof; } ?>
その他の回答 (1)
- saintandre
- ベストアンサー率31% (194/607)
header("Content-disposition: attachment;filename=[ファイル名]"); 上記のHTTPヘッダを出力することでダウンロードして保存する際のファイル名を指定することができます。使用する際は[ファイル名]の部分を目的のファイル名に置き換えて使用してください。
お礼
ソースコードまで書いていただき親切にありがとうございました、おかげさまで思い通りの動作ができるようになりました。