47486


こんにちは、お世話になります。

PHPのヘッダで、下記のような感じでファイル名を指定しています。

[code]

    header('Content-Disposition: attachment; filename="test#1.txt"');
    
[/code]

この記述で、FirefoxやMicrosoftEdgeなどのブラウザではうまくいくんですが、IE11だとシャープがアンダーラインに置き換わってしまい、ダウンロードしたファイル名が「test_1.txt」となってしまいます。  
これを解決する方法はありますでしょうか。  
もし方法があるようでしたら、教えていただけると幸いです。  
以上、よろしくお願いいたします。


CC BY-SA 4.0
2018-08-11T03:24:12.173
47439
2018-08-13T08:33:18.673
29034
question
php
PHPのヘッダでダウンロードファイル名を指定した時のIEの挙動について


ファイル名をURLエンコードして実行すれば可能です。  
文字コードがわかんないですが、とりあえず以下のように実施してみてください。

[code]

    header('Content-Disposition: attachment; filename*=UTF-8\'\''.rawurlencode("test#1.txt"));
    
[/code]

レガシーなブラウザによっては効かない可能性がありますので、必要なブラウザでチェックをしてください。

参考URL  
<https://qiita.com/takehironet/items/79c025e4140e29c57abe>  
<https://qiita.com/khsk/items/d541b8dc40bd2c6128d2>  
<https://www.rfc-editor.org/rfc/rfc6266>


CC BY-SA 4.0
2018-08-13T08:33:18.673
47486
2018-08-13T08:33:18.673
2021-10-07T07:34:52.683
-1
22665
47439
answer