フォームでいくつかのテストを行っているところ、問題が発生しました。機能する非常に単純なテスト スクリプトがありますが、問題は、フォームの FILE フィールドが何らかの理由で $_POST 配列に送信されないことです。 encode="multipart/form-data" を取り出します。それ以外の場合は、他のフィールドを取得するだけです。スクリプトは次のとおりです。
<?PHP
print_r($_POST);
echo"<br>";
print_r($_FILES);
$name = $_FILES["img1"]["name"];
$tmp_name = $_FILES["img1"]["tmp_name"];
$uploads_dir = "uploads";
echo "<br>TEMP NAME:</b>";
echo $tmp_name;
move_uploaded_file($tmp_name, "$uploads_dir/$name");
?>
<html>
<body>
<br><br>
-------------------------
<form name="test" id="test" action="index.php" method="post" enctype="multipart/form-data">
<label>Name</label>
<input type="text" name="title" id="title">
<br>
<label>File</label>
<input type="file" name="img1" id="img1" size="40">
<br>
<input type="submit" value="submit">
</form>
出力は次のとおりです。
POST ARRAY: Array ( [title] => some title )
FIELS ARRAY: Array ( [img1] => Array ( [name] => chicken.jpg [type] => image/jpeg [tmp_name] => /tmp/phpcrBLw9 [error] => 0 [size] => 30940 ) )
TEMP NAME:/tmp/phpcrBLw9
ご覧のとおり、POST にはファイル名ではなくタイトルしかありません。プログラミング上の理由から両方が必要です。ごまかしたり、フィールドを非表示にしたり、値を手動で編集したりせずにそれを行う方法はありますか?