1

我正在处理一个 php/HTML Web 项目,并且我有一个包含输入类型文件的表单,该文件应该发布到 PHP 脚本以将图像上传到服务器。在表单标记中,我使用 target 属性来定位 iframe,以便它可以模拟 AJAX 样式的帖子,即它发布到 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 数组为空。

我尝试将 iframe 更改为包含指向 php 脚本的 src 属性,并从表单中删除了该操作,但这似乎甚至没有执行 PHP 脚本。

感谢您的任何帮助,您可以提供。

4

1 回答 1

4

添加

enctype="multipart/form-data"

 <form method="post" action="phpHandler/image-uploader.php" target="image_upload_frame">
于 2012-10-23T20:37:54.387 回答