2012-03-23 11 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> 

私は、サーブレットには何も得ることはありません。 誰にもその理由がありますか?ありがとう!

答えて

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"/> 

あなたの入力は、パラメータキーとして使用され、したがって、サーブレットで回収される名前を、必要とします。

+0

ありがとうございます!できます! – artaxerxe