
複数のファイルをアップロードできるスクリプトを作成しています。
サーバはWindows、PHPのバージョンは5です。
利用者の要望で日本語のファイル名もアップロードできるようにしたいのですが、文字化けします。
http://okwave.jp/qa1724442.html
を参考にし、下記のスクリプトを
move_uploaded_file($att_tmp, mb_convert_encoding($att_name,"UTF-8"));
と、変更もしてみましたが、うまくいきません。
$valueは文字化けせずに表示されていますが、サーバ上ではファイル名が「逋コ陦ィ謇ソ隱阪す…」という風に化けてしまいます。
対策を教えて頂けませんでしょうか。
よろしくお願いします。
if (isset($_POST["submit"])){
//添付ファイル用変数
foreach($_FILES["att"]["error"] as $key => $error_a){
if($error_a == UPLOAD_ERR_OK){
$att_na = $_FILES["att"]["name"][$key];
$att_tmp = $_FILES["att"]["tmp_name"][$key];
$att_type = $_FILES["att"]["type"][$key];
$att_size = $_FILES["att"]["size"][$key];
if (strlen($att_na)>0){
//ファイル移動
list($att_nam,$k) = explode(".",$att_na);
$ymdhis = date("YmdHis");
$att_name = "{$att_nam}-{$ymdhis}.{$k}";
move_uploaded_file($att_tmp, "file/$att_name");
$att_name_ar[] = $att_name;
foreach($att_name_ar as $value){
echo $value."<br>";
}
}
}
}
No.2ベストアンサー
- 回答日時:
アップロードする目的だけでは不可能のようです。
アップロードしたファイルを、
またユーザーがダウンロードする事があるのでしたら、
アップロードする元の2バイト文字を含むファイル名を、
MySQLなどのデータベースに保存しておいて、
実際のアップロードファイルは半角文字に連番などを付けて管理し、
ダウンロード時にデータベースから参照して、
保存名の初期値に元の名前を表示するようにされたらいいと思います。
それぞれのやり方はわかっていたのですが、
他が忙しくなったので完成せずじまいになっているので、
サンプルコードを提供できなくてすみません。
回答ありがとうございます!
MySQLを使用してデータを保存していたので、項目を1つ追加してリンク用のファイル名と表示用のファイル名をそれぞれ別に保存するようにしてうまくいきました。
変更後のスクリプトは自分で対処できましたので大丈夫です。
とても助かりました!アドバイス本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラウドにアップロード」」...
-
csvファイルをMySQLにインポー...
-
ファイルサイズがpost_max_size...
-
move_uploaded_fileで他のサー...
-
BASP21のFTPで日本語ファイル名...
-
VBでクラウドストレージにア...
-
大容量のファイルアップロード...
-
ファイルのアップロードでパス...
-
DUMPした巨大SQLファイルをイン...
-
ffftpによるアップロードについて
-
ftpでアップロードが出来ない
-
FTPソフトでの複数フォルダへの...
-
onedrive にexcelファイルをア...
-
Subversionのリポジトリの削除
-
PHPのif文でその処理を途中で抜...
-
MkDir関数
-
デバッグの仕方・・・
-
.phpと.incファイルの違いはな...
-
PHPファイルが表示されない
-
トランザクションが原因?DBに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
「クラウドにアップロード」」...
-
youtubeに音声のみのmp4ファイ...
-
ファイルのアップロードで、フ...
-
ファイルサイズがpost_max_size...
-
ftpでアップロードが出来ない
-
違法アップロードについて
-
DUMPした巨大SQLファイルをイン...
-
VBでクラウドストレージにア...
-
SmartyでHTMLソースの変更が反...
-
複数ファイルのアップロードに...
-
FTPClientで転送結果(OKかFAIL)
-
ファイルアップロードしたもの...
-
大容量のファイルアップロード...
-
unlinkでどうしてもファイルが...
-
one drive のアップロード失敗...
-
ファイルアップロードの上限を...
-
ファイルアップロードの日付に...
-
画像ファイルの名前をそのままU...
-
ファイルをGET送信でアップロー...
おすすめ情報