- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cakephpでのダウンロード機能の実装について)
cakephpでの画像ダウンロード機能の実装について
このQ&Aのポイント
- cakephpで画像のダウンロード機能を実装しています。ファイル名が英語の画像は問題なくダウンロードできるのですが、ファイル名が日本語の画像がダウンロードできません。
- リンクをクリックすると表示されるエラーメッセージは「The requested file img/日本語ファイル名.jpg was not found or not readable Error: The requested address '/illusts/image/%~.jpg' was not found on this server.」です。
- webroot/imgにはちゃんと画像は入っているのですが、日本語名のファイルもダウンロードできるようにする方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$filenameをshift_jisに変換したらできる気がします。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
>日本語名のファイルもダウンロードできるようになるのでしょうか。 原則「日本語ファイル名をつかわない」の言うのが妥当な回答です インターネットの仕組み上日本語ファイルはよほどユーザーの環境を制限しない限り ただしくアクセスすることは難しいです(たとえばIE限定とか) またサーバー上におかれるファイル名も念のためなんらかのエンコードした形式に 変更しておき、ダウンロードの際にデコードするなり名前をつけかえるなり 工夫が必要でしょう。(phpであればurlencodeなど)
質問者
お礼
ご回答ありがとうございます。 やはり日本語ファイル名を使わないことが1番ですよね。 ただ、もし方法があるなら…と思いまして…。 urlencode参考にさせて頂きます! ありがとうございました。
お礼
解決できました。 ありがとうございました。
補足
ご回答ありがとうございます。 アドバイス頂いた通り、$filenameをshift_jisにしてダウンロードのリンクをクリックしたところ、 The requested file img/日本語ファイル名.jpg was not found or not readable の表示は消えました。 ただ、 Error: The requested address '/illusts/image/%~.jpg' was not found on this server. は表示されたままでして…。 image/の後の%~.jpgが原因だとは思うのですが、何か対処法ご存知でしょうか。 もしよろしければ、よろしくおねがいします。