私はphp/HTML Webプロジェクトに取り組んでおり、画像をサーバーにアップロードするためにPHPスクリプトに投稿する必要がある入力タイプファイルを含むフォームがあります。form タグでは、AJAX スタイルの投稿をシミュレートできるように iframe をターゲットにするために target 属性を使用しています。つまり、iframe に投稿するので、メイン ページを更新する必要なく iframe が作業を行います。
以下は私が使用しているフォームです。
<form method="post" action="phpHandler/image-uploader.php" target="image_upload_frame">
<table>
<tr>
<td>
Image Title:
</td>
<td>
<input type="text" id="txtImageTitle" name="txtImageTitle" />
</td>
</tr>
<tr>
<td>
Image File:
</td>
<td>
<input type="file" id="txtImageFile" name="txtImageFile" />
</td>
</tr>
</table>
以下はiframeです
<iframe id="image_upload_frame" name="image_upload_frame"></iframe>
以下は、フォームの投稿先となる PHP スクリプトです。
echo "posting";
$title = $_POST['txtImageTitle'];
$tempName = $_FILES['txtImageFile']['name'];
writeToLog("Image Title:" . $title);
writeToLog("Temp Name: $tempName\n");
$data = var_export($_POST, true);
$fileData = var_export($_FILES, true);
writeToLog($data);
writeToLog($fileData);
function writeToLog($message)
{
$fh = fopen('log.txt', 'a');
fwrite($fh, $message);
fclose($fh);
}
PHP スクリプトは実行されていますが、$_FILES および $_POST 配列は空です。
PHPスクリプトを指すsrc属性を含むようにiframeを変更して、フォームからアクションを削除しようとしましたが、これはPHPスクリプトを実行することさえないようです。
ご協力いただきありがとうございます。