• ベストアンサー
※ 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にはちゃんと画像は入っているのですが、日本語名のファイルもダウンロードできるようにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kikanbo
  • ベストアンサー率31% (44/139)
回答No.2

$filenameをshift_jisに変換したらできる気がします。

参考URL:
http://pentan.info/php/mkdir_ja.html
noname#206561
質問者

お礼

解決できました。 ありがとうございました。

noname#206561
質問者

補足

ご回答ありがとうございます。 アドバイス頂いた通り、$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が原因だとは思うのですが、何か対処法ご存知でしょうか。 もしよろしければ、よろしくおねがいします。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>日本語名のファイルもダウンロードできるようになるのでしょうか。 原則「日本語ファイル名をつかわない」の言うのが妥当な回答です インターネットの仕組み上日本語ファイルはよほどユーザーの環境を制限しない限り ただしくアクセスすることは難しいです(たとえばIE限定とか) またサーバー上におかれるファイル名も念のためなんらかのエンコードした形式に 変更しておき、ダウンロードの際にデコードするなり名前をつけかえるなり 工夫が必要でしょう。(phpであればurlencodeなど)

noname#206561
質問者

お礼

ご回答ありがとうございます。 やはり日本語ファイル名を使わないことが1番ですよね。 ただ、もし方法があるなら…と思いまして…。 urlencode参考にさせて頂きます! ありがとうございました。

関連するQ&A