把文件域隐藏,用按钮实现上传文件的功能,但是在ie浏览器上却接收不到文件的值,ff却能接收到
怎么回事呀?
我用的是smarty<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script>
function picture(){
  document.getElementById('pic').click();
  }
</script>
<body><form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <input name="pic" id="pic" type="file" style="display:none;"/>
  <a href="javascript:picture()">图片</a>
  
  <input name="ac" type="hidden" value="file" />
  <input name="" type="submit" value="提交" />
</form></body>
</html>
   if(isset($_POST['ac']) && $_POST['ac']=='file'){
     echo '<pre>';
     print_r($_FILES['pic']);
  }
ie里面是错误的,并且还得点两下按钮才提交
Array
(
    [name] => 
    [type] => 
    [tmp_name] => 
    [error] => 4
    [size] => 0
)ff是对的

解决方案 »

  1.   

    php代码就是接收 打印一下呀,上面写了呀
      

  2.   

    你先别隐藏IE和FF下都试试直接点选择文件的输入框,不要直接点后面的浏览按钮是什么结果
      

  3.   

    <script>
    function picture(){
    document.getElementById('pic').click();
    }
    function addFile(file){
    //if IE
    var input = "<input type='file' name='pic1' value='C:\Documents and Settings\Administrator\桌面\123.gif'>";
    document.getElementById("div").innerHTML = input;
    }
    </script><form action="test.php" method="post" enctype="multipart/form-data" id="form">
      <input name="pic" id="pic" type="file" onchange="addFile(this)"><div id="div"></div>
      <a href="javascript:picture()">图片</a>
      <input name="" type="submit" value="提交">
    </form>自己理解去吧
      

  4.   

    使用IE的时候,点击二次生效 是因为第一次点击的时候,把上传框里面的文件路径给清空了!所以再次提交的时候,打印出来显示的是错误,  在使用FF的时候,直接提交成功
      

  5.   

    这是因为 ie 对试图人为控制 type=file 控件的行为作了防范(ie6以下,你的代码是可以的)