为什么我的表单没有提交?

时间:2011-06-06 02:33:05

标签: html macos forms firefox enctype

我有一个简单的HTML表单,因此:

<html>
<head></head>
<body>
    <form action="upload_file.php" method="post" enctype="multipart/form-data">
      <input name="filesToUpload" id="filesToUpload" type="file" />
      <input type="submit" value="Upload File" />
    </form>
</body>
</html>

当用户点击提交时,我希望通过upload_file.php脚本看到结果。但是在Mac上的FF 4.01上,绝对没有任何反应。地址栏中的URL保持不变,并且不会在服务器上调用我的php脚本。如果我将enctype更改为“multipart / form-data”之外的其他内容,或者如果我从“post”更改方法,我可以让它提交表单。

我无法弄清楚正在发生的事情。它是一个FF / Mac的bug,还是我正在做的schtoopid。

FWIW,这是PHP脚本。它几乎逐字逐句地从W3schools PHP upload tutorial

中偷走了
<?php
if ($_FILES["filesToUpload"]["error"] > 0)
  {
  echo "Error: " . $_FILES["filesToUpload"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["filesToUpload"]["name"] . "<br />";
  echo "Type: " . $_FILES["filesToUpload"]["type"] . "<br />";
  echo "Size: " . ($_FILES["filesToUpload"]["size"] / 1024) . " Kb<br />";
  }
?> 

1 个答案:

答案 0 :(得分:1)

哦,好吧,我好像已经解决了。我创建了一些虚拟文件来测试我将用来检查文件名有效性的脚本。但我只是通过去终端并做

来创建它们
touch testfile.txt testfile2.txt testfile3.txt

所以这些文件都是零字节。这看起来似乎不适用于Mac上的FF。然而,它适用于铬。在PC上,我选择了真正的文件,因为我不知道windows等价于touch命令,所以这就是Firefox在那里工作的原因。