2010年8月25日

[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


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




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