上传一个简单的文件并输入到Java

时间:2018-01-03 17:42:26

标签: javascript java html spring

我正在使用Spring MVC。我想上传文件,但我的尝试不起作用。这是我的最后一次尝试。 我调试了,我正确地获取了文件对象,并在ajax中序列化了表单。

我明白了这一点,我做的事情很糟糕。

  

POST http://localhost:8080/upload/testCase 400(错误请求)

如何在控制器上获取表单数据和文件?

HTML:

     <input id="testName" class="form-control" name="testName" placeholder="Insert a name for the test case">
     <input type="file" name="fileUpload" id="fileUpload" class="hide"/>

的Javascript

$(document).ready(function () {

var file = new FormData();
$('#fileUpload').change(function () {
    file.append('file',$('#fileUpload')[0].files[0]);
    console.log($('#fileUpload')[0].files[0]);
});

$('#btnSubmit').click(function (e) {
    e.preventDefault();
    var data = $('#creationForm').serialize();
    console.log(data + file);
    $.ajax({
        type: 'post',
        url: '/upload/testCase',
        data: {data: data, file: file},
        processData: false,
        success: function (result) {

        },
        error: function () {

        }
    });
    return false;
});

});

Controller Java

@RequestMapping(value = "/upload/testCase" , method = RequestMethod.POST)
public @ResponseBody String uploadTestCase(@RequestParam("data") String data, @RequestParam("file") File file ) {
    //TestCases.upload(file);
    System.out.println(data + file);
    return "";
}

后端

public static void upload(MultipartHttpServletRequest request) {

    //1. get the files from the request object
    Iterator<String> itr =  request.getFileNames();

    MultipartFile mpf = request.getFile(itr.next());
    System.out.println(mpf.getOriginalFilename() +" uploaded!");

}

0 个答案:

没有答案