2012-03-23 22 views
0

以下this线程,我试图上传一个文件在服务器上。如果我用一个简单的形式是这样的:奇怪的行为与修改输入类型=“文件”



<form action="/site/subscribers_import" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file" /> 
    <input type="submit" /> 
</form> 

一切顺利,但如果我尝试修改表单,像这样:



<form action="/site/subscribers_import" method="post" enctype="multipart/form-data" > 

    <input type="submit" value='${importLabel}' style="float: right;" /> 

    <div id="chooseFileBttn" style="width:3em; height: 2em; cursor:pointer; float: right;" onclick="getFile()"> 

    <img src="/site/images/import.png" title="${importUsers}" height="20" width="30" style="padding-right: 10px; float: right;"/> 

    </div> 

    <div style='height: 0px;width:0px; overflow:hidden;'> 
     <input id="upfile" type="file"/> 
    </div> 

</form> 

<script> 
     function getFile(){ 
      document.getElementById("upfile").click(); 
     } 
</script> 

我没有得到在servlet东西。 有没有人有任何想法,为什么呢?谢谢!

回答

1

你的工作输入:

<!-- presents a name attribute --> 
<input type="file" name="file" /> 

你不工作输入:

<!-- does not present a name attribute, but an id instead --> 
<input id="upfile" type="file"/> 

你输入需要一个名字,将被用作参数键,因此在servlet的恢复。

+0

非常感谢!有用! – artaxerxe 2012-03-23 09:11:08