0

按照我的代码:

HTML:

<form id="test" action="javascript:test()" method="post">
<input name="image" type="file" /> 
<input type="submit" value="Submit" />
</form>

JS:

function test(){
   iframe = document.createElement("IFRAME");  
   iframe.name = "iframe_upload";
   iframe.src="test.php";
   document.body.appendChild(iframe);
   document.getElementById("test").target = "iframe_upload";
}

PHP:

<?php
  if (isset($_FILES["image"])){
     echo 'exist';
     exit();
  }
?>

错误在哪里?我确定问题出在javascript中,如果没有javascript动态创建iframe,很容易起飞,但我必须使用javascript。

4

1 回答 1

1

有几个问题,但没什么大不了的,

首先为了发布您需要添加enctype="multipart/form-data"到表单中的文件

其次action,表单的应该是您要发布到的文件(iframe 源),并且应该从运行 javascriptonsubmit

最后,您需要为 iframeid提供跨浏览器支持

我最终得到了这个

JS:

function test(){
     iframe = document.createElement("IFRAME");  
     iframe.name = "iframe_upload";
     iframe.id = "iframe_upload"; //some browsers target by id not name
     document.body.appendChild(iframe);
     document.getElementById("test").target = "iframe_upload";
  }

HTML:

<form id="test"   method="post" target="iframe_upload" enctype="multipart/form-data" onsubmit="javascript:test()" action="test.php">
<input name="image" type="file" /> 
<input type="submit" value="Submit" />
</form>

PHP:

<?php
  print_r($_FILES);
?>
于 2013-11-07T12:14:22.420 回答