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

Manabu Masuzawa gaku-mszw520 @ themis.ocn.ne.jp
2010年 8月 25日 (水) 16:53:36 JST


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

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 @ gmail.com>
To: <php-users @ php.gr.jp>
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 @ php.gr.jp
> 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 メーリングリストの案内