javascript - XHR 分段文件上传 Spring Boot 问题

标签 javascript spring-boot

我有一个上传进度条,可根据文件输入进行操作,当进度条达到 100% 时,不会出现错误。但是当我在 Spring Boot 中打印文件的内容时,我注意到 for 循环中的代码没有运行。这是代码。请帮忙,谢谢!

JavaScript:

function upload(file) {
    var formData = new FormData();
    formData.append("newFile", file);
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/upload');
    xhr.onload = function(e) {
        console.log("xhr onload function");
    };
    var progressBar = document.querySelector('progress');
    xhr.upload.onprogress = function(e) {
        if (e.lengthComputable) {
            progressBar.value = (e.loaded / e.total) * 100;
            progressBar.textContext = progressBar.value;
        }
    };
    xhr.send(formData);
}

Spring 启动:

@RequestMapping(value="/upload", method=RequestMethod.POST)
public String upload(@RequestParam("files") MultipartFile[] files) {

    // This prints [Lorg.springframework.web.multipart.MultipartFile;@........].
    System.out.println(files);
    for (MultipartFile file : files) {
        // This doesn't get printed.
        System.out.println(file.getOriginalFilename());
    }
    return "redirect:/";
}

最佳答案

在 JavaScript 中,您将文件添加到“newFile”变量,但在 Spring 端,您从请求参数“files”中提取文件。

您要上传多个文件吗?看来并非如此。仅尝试使用 Multipart。

关于javascript - XHR 分段文件上传 Spring Boot 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57437667/

相关文章:

javascript循环每15分钟检查一次

java - Spring JPA更新并返回更新后的数据

java - 在 POST 请求中反序列化 LocalDateTime 时出错

spring-boot - 使用 Spring Data 原生查询时,位置 [1] 的参数不存在错误

javascript - knockout JS : Dynamic tabs with dynamic content

javascript - Uncaught ReferenceError : require is not defined React. js

java - 如何在 Java Spring Boot 中获取 zip 文件作为响应?

java - 无法在 Intellij 中指定主 list 属性

javascript - 3 行 ul,屏幕宽度可变

javascript - 样条图上绑定(bind)到 x 和 y 轴的标记点