2

jspから、インターンがサーブレットにリクエストを行うajax呼び出しを介してファイルをアップロードする必要があり、アップロードプロセスが完了すると、インポートされたすべてのデータをユーザーに表示できるように、ajax関数に制御を戻す必要があります。

// これが私のコードです

    <form id="form1" method="post" enctype="multipart/form-data" action="TestUpload"
     onsubmit="validate();" >
    Name : <input type="text" name="name" id="name"/><br>
    File : <input type="file" name="file" id="file"></input><br>
    <input type="submit" value="Submit" ></input>  
    </form>



// ajax function :

 var validate = function() {

    var form = $('#form1');
    strContent = $.getMultipartData('#'+this.id);
    var programId = $('#name').val();
    if (programId == "") {
        return false;
    }
    $.ajax( {
        type: form.attr('method'),
        url: form.attr('action'),
        enctype:form.attr('enctype'),
        contentType: 'multipart/form-data; boundary='+strContent[0],
        data: form.serialize,
        success : function(data) {
            alert(data);
            $('#status').val(data);
        }
    });
   };

および、mutlipartRequest を使用してフォーム データを処理するサーブレット コード。

public void processRequest(HttpServletRequest request,HttpServletResponse response) throws       
    ServletException,IOException{
    System.out.println("Got Request");
    File file = null;
    response.setContentType("text/plain");
    response.setHeader("Access-Control-Allow-Origin", "*");
    PrintWriter out = response.getWriter();
    String filePath = "c:\\test";
    MultipartRequest processFile  = new MultipartRequest(request, filePath);
    file = processFile.getFile("file");
    String fileName = file.getName();
    System.out.println("Valule of text field Name is :\t" +      
    processFile.getParameter("name"));
    System.out.println("FileName is :\t" + fileName);
    out.println("success");
    out.close();
}

//プロセスが完了したら、適切な解決策を見つけることができない ajax 呼び出しに応答したい。

4

1 に答える 1

0

返された json または xml (インターネット データ) はアラートに表示されません。console.log に入れてみてください。それでもうまくいかない場合は、返されたオブジェクトを配列に変換してから使用してください。

于 2013-05-24T11:51:56.550 に答える