在没有页面刷新的表单中上载文件

Mar*_*ark 2 html javascript forms ajax

我有这段代码:

<form name="myUploadForm" method="post" action="/scripts/upload.do" enctype="multipart/form-data" id="fileUpload">
   <table width="100%" border="0"> 
      <tr>
         <td>
            <input type="file" name="xlsFile" size="60" value="test.xls"> 
            <input type="button" value="Upload File" name="upload_xls">
         </td>
      </tr>
   </table>
</form>
Run Code Online (Sandbox Code Playgroud)

现在我可以使用Struts上传文件,但它会刷新页面.如果没有页面刷新,我该怎么做?

Ili*_*kov 6

什么对我有用:

在表单标记上,我有target ="hidden-iframe"

页面上隐藏的i-frame看起来像这样:

<iframe name="hidden-iframe" style="display: none;"></iframe>
Run Code Online (Sandbox Code Playgroud)

这里要强调的重要一点是表单引用了框架的name属性而不是id.


Ram*_*lat 5

您可以使用 jQuery 发布表单并获取结果。

$('#formId' ).submit(
    function( e ) {
        $.ajax( {
            url: '/upload',
            type: 'POST',
            data: new FormData( this ),
            processData: false,
            contentType: false,
            success: function(result){
                console.log(result);
                //$("#div1").html(str);
            }
        } );
        e.preventDefault();
    } 
);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="formId" action="/upload" enctype="multipart/form-data" method="post">
        <input type="text" name="title"><br>
        <input type="file" name="upload" multiple="multiple"><br>
        <input type="submit" value="Upload">
</form>
<div id="div1">
</div>
Run Code Online (Sandbox Code Playgroud)


Tow*_*own 1

如果您可以使用 jQuery,则可以使用jQuery 文件上传之类的东西。