通过ajax在SpringMVC上传文件

时间:2015-12-14 06:35:18

标签: java ajax spring-mvc file-upload

首先,我正在搜索并尝试在stackoverflow上描述的许多方法,但它仍然无法正常工作。

我无法通过ajax和SpringMVC上传任何文件。这是我的代码。什么可能是错的?

  • 动态网络模块2.5
  • 春季4
  • tomcat 6

jsp代码:

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

与上传相关的依赖关系:

function uploadMeNow() {
    var file = new FormData($("#myName"));

    $.ajax({
        url : "/m61/uploadMe",
        data : {file: file},
        type : "POST",
        processData: false,
        contentType: false,
        cache: false,

        success : function(response) {

            if (response.indexOf("saved") >= 0) {
                alert('ok')
            }
        },
        error : function (xhr, status, error) {
            alert(xhr.responseText);

            if (xhr.responseText.indexOf("failed") >= 0) {
                alert('not ok')
            }
        }
    });
}

的javascript:

<bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="20971520" />
    <property name="maxInMemorySize" value="1048576" />
</bean>

的xml:

@RequestMapping(value = "/uploadMe", method = RequestMethod.POST)
@ResponseBody
public String uploadMe(@RequestParam("file") MultipartFile file) {
    System.out.println("aaa");
    return "saved";
}

控制器:

headers: {'Content-type':'multipart/form-data'},

结果:当前请求不是多部分请求。

我也尝试添加到ajax:

@helper GenerateSelect(List<Dictionary<string, string>> dict)
{
    foreach (var item in dict)
    {
        <option value="@item["id"]">@item["name"]</option>
    }
}

结果:请求被拒绝,因为没有找到多部分边界

请帮帮我。

0 个答案:

没有答案