[PHP-users 8060] 4.2.1でのファイルアップロード(MySQL のDBへ)

go php-users@php.gr.jp
Thu, 13 Jun 2002 12:29:18 +0900


いつもご指導ありがとうございます。井上ともうします。

環境
solaris8 2/02
Apache 1.3.22
php 4.2.1
MySQL 3.23.45

PHPのphp.iniの設定
register_globals = on
の状態での質問です。

フォームを使ってファイルをアップロード(MySQLのDBに)したいのですが、正常に 
アップロードできません、php4.0.6だと下記testform.phpの3行目の「textfile」に 
ファイルのパスが入っていて
$query = "LOAD DATA LOCAL INFILE '$textfile' INTO TABLE ・・・;
などとすれば$textfileがファイルの場所を指定してくれるので問題なくアップロー 
ドできるのですが、
php4.2.1だと
$HTTP_POST_FILES['textfile']['tmp_name']
にしないといけないと思うのですが・・また
$HTTP_POST_FILES['textfile']
$HTTP_POST_FILES['textfile']['name']
$_REQUEST、$_GETなどもやってみましたが正常にアップロードできませんでした。
また
print_r($GLOBALS);を埋め込んで見てみると
$HTTP_POST_FILES['textfile']['name']     test.text(選択したローカルファ 
イル)
$HTTP_POST_FILES['textfile']['tmp_name']   なにもない!!・・・
になっています。本来ならば、/var/tmp//phpDnayMa などのわけのわからないパスが 
入っていれば正常にアップロードできると思うのですが・・・

下記が問題の内容です。
-------------フォームの内容 testform.php-------------
<form action="upload.php" method="post"  enctype="multipart/form-data">
	<input type="file" name="textfile" id="bot"></td>
	<input type="hidden" name="MAX_FILE_SIZE" value="1000">
	<input type="Submit" name="upload" value=" アップロード ">
	<input type="Reset" value=" リセット ">
</form>
-------アップロードファイル upload.php--------
     $query = "LOAD DATA LOCAL INFILE '$HTTP_POST_FILES[textfile][tmp_name]' 
INTO TABLE testtable FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r'";
         $result = mysql_query($query);
----------------------------------------------------

気になる点としてPHP4.2.1インストールのときに
makeで
mbfilter.c:136: warning: initialization from incompatible pointer type
mbfilter.c:236: warning: initialization from incompatible pointer type
              ・
              ・   途中省略
              ・   番号以外文章は同じ
mbfilter.c:711: warning: initialization from incompatible pointer type
が27行続いた点です。これもなにか関係あるのでしょうか?

どなたかご存じの方ご指導宜しくお願いいたします。

井上 大悟
go16@mac.com