0

春にファイルをアップロードしようとすると、次の例外が発生します。

The request sent by the client was syntactically incorrect.

これは私がajaxを通して値を提出する方法です:

function uploadComment(viewName,answers){
    var file_data = $("#CIMtrek_daily_originator_comments").val();
    alert("file_data "+file_data);
    $.ajax({
            type : "POST",
            url : "CIMtrek_Compliance_Daily_Shipments_FileUpload",
            data: {
                uploadFile : file_data,
                id : '0'
            },
        success: function (msg) {
            global.getElementById("CIMtrek_uploadedFileName").innerHTML=msg;
             alert("File Uploaded");
        }
    });

}

これが私のコントローラーメソッドです:

@RequestMapping(value = "/CIMtrek_Compliance_Daily_Shipments_FileUpload", method = RequestMethod.POST)
    public String createComments(@RequestParam("uploadFile") MultipartFile  uploadItem ) {
        System.out.println(" CIMtrek_Compliance_Daily_Shipments_FileUpload : ");
        String uploadedFileName="";
        try {
            String fileName = null;
            InputStream inputStream = null;
            OutputStream outputStream = null;
            if (uploadItem.getSize() > 0) {
                inputStream = uploadItem.getInputStream();

                System.out.println("size::" + uploadItem.getSize());
                fileName = "/WEB-INF/resources/Attachment/"+ uploadItem.getOriginalFilename();

                outputStream = new FileOutputStream(fileName);
                System.out.println("fileName:" + uploadItem.getOriginalFilename());

                int readBytes = 0;
                byte[] buffer = new byte[10000];
                while ((readBytes = inputStream.read(buffer, 0, 10000)) != -1) {
                    outputStream.write(buffer, 0, readBytes);
                }
                outputStream.close();
                inputStream.close();
            }
            uploadedFileName =uploadItem.getOriginalFilename();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return uploadedFileName;
    } 

これを解決するのを手伝ってください。

4

1 に答える 1

0

以下のように、val() の代わりに serialize() を使用する必要があります。

データ: $("#your_form").serialize();

$.ajax({
type : "POST",
contentType:false,
url : "CIMtrek_Compliance_Daily_Shipments_FileUpload",
data: $("#your_form").serialize(),
    success: function (msg) {
        global.getElementById("CIMtrek_uploadedFileName").innerHTML=msg;
         alert("File Uploaded");
    }
});
于 2013-01-29T11:30:45.360 に答える