[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