【问题标题】:Send file to MVC Controller发送文件到 MVC 控制器
【发布时间】:2020-12-26 06:45:39
【问题描述】:

我已参考以下链接上传文件,但我不断收到

https://www.baeldung.com/spring-file-upload

这在我的 Thymeleaf 文件中有:

<div>
    <form method="POST" action="esubmission/submitter/uploadFile" enctype="multipart/form-data" onclick="disableOnBeforeUnload()" >
         <table>
             <tr>
                 <td><label path="file">Select a file to upload</label></td>
                 <td><input type="file" name="file" /></td>
             </tr>
             <tr>
                 <td><input type="submit" value="Submit"/></td>
             </tr>
         </table>
    </form>
</div>

这是我的javascript函数

function disableOnBeforeUnload() {
    window.removeEventListener("beforeunload", windowClosedOrReloaded);
}

这是我的控制器:

@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public String submit(@RequestParam("file") MultipartFile file, ModelMap modelMap) {
    modelMap.addAttribute("file", file);
    return "fileUploadView";
}

如您所见,我在控制器中调用了函数,但出现 404 错误

2020-09-07 16:19:05.332 DEBUG 81932 --- [nio-8080-exec-3] o.s.w.s.r.ResourceHttpRequestHandler     : Resource not found
[2020-09-07 16:19:05,332] DEBUG o.s.w.s.r.ResourceHttpRequestHandler - Resource not found 
2020-09-07 16:19:05.332 DEBUG 81932 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet        : Completed 404 NOT_FOUND

我错过了什么??

我也尝试过使用 ajax 调用,如下所示:

function uploadDocument(){
    $.ajax({
        type: "POST",
        contentType: "application/json",
        url: "/appName/role/uploadFile/",
        timeout: 100000,
        success: function (result) {
            console.log("SUCCESS");
        },
        error: function (e) {
            console.log("ERROR: ", e);
        },
        done: function (e) {
            console.log("DONE");
        }
    });
}

【问题讨论】:

  • 这个/appName/role/uploadFile/ url 对吗? 404 仅表示您引用的网址不正确或不存在,因此请确保网址是否正确。
  • 是的,网址是正确的。我只是将其更改为隐藏真实值。

标签: ajax spring-boot file spring-mvc


【解决方案1】:

验证您的路径 url /appName/role/uploadFile/ 是否正确 因为服务器返回 404 这意味着路径不正确。 如果您在同一页面上使用此脚本,则无需输入/appname/role/ 您可以像在同一个控制器上一样简单地传递该方法名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-20
    • 2012-09-09
    • 1970-01-01
    • 2018-04-01
    • 2019-05-31
    • 2012-01-29
    • 2020-12-30
    • 2016-09-07
    相关资源
    最近更新 更多