如何使用Spring MVC中通过Ajax的PUT方法上载文件?(How to upload a f

2019-11-01 06:23发布

我有以下的js代码发送Ajax请求到映射在Spring MVC的方法的URL。

function update(id)
{
    $.ajax({
        datatype:"json",
        type: "put",
        url: "/wagafashion/ajax/TempAjax.htm",
        data: "id=" + id+"&t="+new Date().getTime(),
        success: function(response)
        {
            alert(response);                        
        },
        error: function(e)
        {
            alert('Error: ' + e);
        }
    });
}

而下面是只有一个文件浏览器和一个按钮的简单的Spring形式。

<form:form id="mainForm" name="mainForm" method="post" action="Temp.htm" enctype="multipart/form-data" commandName="tempBean">
    <input type="file" id="myFile" name="myFile"/>
    <input type="button" id="btnSubmit" name="btnSubmit" onclick="update(1);" value="Submit"/>
    <!--The js function is called when this button is clicked supplying 1 as id.-->
</form:form>

在弹簧控制器的以下方法当按下该按钮被调用。

@RequestMapping(method={RequestMethod.PUT}, value={"ajax/TempAjax"})
public @ResponseBody String update(HttpServletRequest request, HttpServletResponse response)
{
    System.out.println(ServletFileUpload.isMultipartContent(request));
    return "Message";
}

方法调用ServletFileUpload.isMultipartContent(request)然而返回false


当我修改方法如下,

@RequestMapping(method={RequestMethod.PUT}, value={"ajax/TempAjax"}, headers={"content-type=multipart/form-data"})
public @ResponseBody String update(@RequestParam MultipartFile file, HttpServletRequest request, HttpServletResponse response)
{
    System.out.println(ServletFileUpload.isMultipartContent(request));
    return "Message";
}

在JS代码中的错误部分总是提醒Error: [object Object] 。 同样的事情发生,即使POST使用方法,在这种情况下。

如何通过Ajax通过多部分内容(准确地说使用PUT方法)?

Answer 1:

我实在看不出这是怎么打算发布多文件到服务器? 该数据只包含ID和时间。

尝试是这样的:

function update(id)
{
    $.ajax({
        datatype:"json",
        type: "put",
        url: "/wagafashion/ajax/TempAjax.htm",
        data: $('#mainForm').serialize(),
        success: function(response)
        {
            alert(response);                        
        },
        error: function(e)
        {
            alert('Error: ' + e);
        }
    });
}


文章来源: How to upload a file using the PUT method via Ajax in Spring MVC?