2010年8月25日

[PHP-users 35348] Re:sjisのフォームからファイル名が取得できない

増澤と申します。
以下の設定を参考にしてみてください。

output_buffering = on
output_handler = mb_output_handler
default_charset = "Shift_JIS"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII
mbstring.substitute_character = "none"
mbstring.encoding_translation = On

PHPファイル、データベースの文字エンコードはUTF-8にしてください。
内部はUTF-8で処理し、出力のみShift_JISに文字エンコードを変換します。


┘┘┘┘┘┘
 増澤 学


----- Original Message -----
From: "Masayuki Andou" <mailtodoor2@xxxxx>
To: <php-users@xxxxx>
Sent: Wednesday, August 25, 2010 11:06 AM
Subject: [PHP-users 35340]sjisのフォームからファイル名が取得できない


> 初めまして。
>
> 安藤といいます。よろしくお願いします。
>
> 本日、PHPのファイルアップロードフォームを作成したのですが、
> $_FILESにファイル名が正しく表示されない現象がありましたので質問させてください。
>
>
> ■環境
> CentOS 5
> Apache/2.2.3
> PHP 5.1.6
>
>
> phpinfo()の結果
> output_handler no value
> default_charset no value
> mbstring.language neutral
> mbstring.http_input pass
> mbstring.http_output pass
> mbstring.internal_encoding no value
> mbstring.substitute_character no value
>
>
> ■現象
> ファイルのアップロードだけができるHTMLフォーム(form.html)をShift_JISで作成し、
>
> 受け取るPHP(post.php)はUTF-8で記述しています。
>
>
> この状態で「表紙.txt」というファイルをアップロードすると
> ファイル名が「紙.txt」という値でしか取得できません。
>
>
> 正しく取得するには何か設定が必要でしょうか。
>
>
> 文字コードの指定方法を以下のように変えてみたのですが、解決できませんでした。
>
>
> default_charset Shift_JIS
> mbstring.http_output SJIS
> mbstring.internal_encoding UTF-8
>
> どなたかお知恵を拝借できないでしょうか。
>
> よろしくお願いします。
>
>
>
> form.html
> -----------------------------------------------------
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <meta http-equiv="Content-Type" content="text/html; />
> <title>Posts</title>
> </head>
> <body>
>
> <form enctype="multipart/form-data" method="post" action="post.php">
> <input type="file" name="file" />
> <input type="submit" />
> </div>
> </form>
> </body>
> </html>
> -----------------------------------------------------------
>
>
> post.php
> -----------------------------------------------------------
> <?php
> var_dump($_FILES);
> ?>
> -----------------------------------------------------------
>
>
> post.phpの出力結果
> -----------------------------------------------------------
>
> array(1) {
> ["file"]=>
> array(5) {
> ["name"]=>
> string(6) "紙.txt"
> ["type"]=>
> string(10) "text/plain"
> ["tmp_name"]=>
>
> string(14) "/tmp/phpzFijzi"
> ["error"]=>
> int(0)
> ["size"]=>
> int(576)
> }
>
> }
> _______________________________________________
> PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>
> __________ ESET NOD32 Antivirus からの情報, ウイルス定義データベースのバージョン 5394 (20100824) __________
>
> このメッセージは ESET NOD32 Antivirus によって検査済みです。
>
> http://canon-its.jp
>
>
>


__________ Information from ESET NOD32 Antivirus, version of virus signature database 5394 (20100824) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年8月25日 16:53
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/97956
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。