
複数のファイルをアップロードできるスクリプトを作成しています。
サーバは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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
アンドロイドスマホでのphp ech...
-
Postgresの特定のカラムからス...
-
ここで言う空文字の意味とは?
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
「クラウドにアップロード」」...
-
BASP21のFTPで日本語ファイル名...
-
ftpでアップロードが出来ない
-
FTPClientで転送結果(OKかFAIL)
-
youtubeに音声のみのmp4ファイ...
-
PHPでxmlをAPIに送信する方法(P...
-
os x serverのアップロードファ...
-
ファイルのアップロードがどう...
-
$_FILES['x']['error']について
-
DUMPした巨大SQLファイルをイン...
-
違法アップロードについて
-
ファイルアップロードの日付に...
-
ファイルアップロードしたもの...
-
PHPで音楽ファイルのアップ...
-
アップロードするとバックスラ...
-
BASP21を利用してリネームファ...
-
ファイルサイズがpost_max_size...
-
ファイルのアップロードを行う...
-
SmartyでHTMLソースの変更が反...
おすすめ情報