当前位置: 首页 > 知识库问答 >
问题:

使用spring boot上载文件

曾云
2023-03-14

我试图做一个简单的文件上传,但它给出了一个错误,下面是我如何做到的。

形式:

<div class="container">
   <div th:replace="~{base :: titulo('Disparar Holerites')}"></div>
    <div class="card mt-3">
      <form class="card-body needs-validation" action="/holerite/uploadHoleritesFile" method="POST" enctype="multipart/form-data" novalidate>
        <div>
            <label for="arquivoContabilidade" class="form-label">Arquivo Recebido da Contabilidade</label>
            <div class="input-group has-validation mb-4">
                <input accept=".pdf"  type="file" class="form-control" id="arquivoContabilidade" aria-describedby="inputGroupPrepend" required>

            </div>
        </div>
        <button class="btn btn-primary" type="submit">Enviar</button>
      </form>
  </div>

控制器:

@PostMapping(value = "uploadHoleritesFile")
public String uploadHoleritesFile(@RequestParam("arquivoContabilidade") MultipartFile arquivoContabilidade, RedirectAttributes redirectAttributes){
    logger.info("Entramos aqui");
    logger.info("Recebido o arquivo: "+!arquivoContabilidade.isEmpty());
    if(arquivoContabilidade.isEmpty()){
        return "redirect:holerites/passo1";
    }
    try{
        byte[] bytes = arquivoContabilidade.getBytes();
        Path path = Paths.get(COTABILIDADE_FOLDER + arquivoContabilidade.getOriginalFilename());
        Files.write(path, bytes);


    } catch (IOException e){
        e.printStackTrace();
    }
    return "holerites/passo2";


}

错误:

2022-02-04 18:36:41.048DEBUG 17136---[nio-8080-exec-9]o.s.web.servlet.DispatcherServlet:"ERROR"调度为POST"/error",参数={multipart}2022-02-04 18:36:41.057DEBUG 17136---[nio-8080-exec-9]s. w. s. m. m. a. Request estMappingHandlerMap:映射到org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#errorHtml(HttpServletRequest, HttpServletACK)2022-02-04 18:36:41.077DEBUG 17136---[nio-8080-exec-9]o. s. w. s. v. ContentNe谈判视图解析器:选定的"text/html"给定[text/html, text/html; q=0.8]2022-02-04 18:36:41.081DEBUG 17136---[nio-8080-exec-9]o.s.web.servlet.DispatcherServlet:退出"ERROR"调度,状态403

共有1个答案

梁明辉
2023-03-14

您应该在html的输入字段中添加一个属性。Thymeleaf在将其映射到多部分文件时使用name属性。

示例:

<input accept=".pdf" name="arquivoContabilidade" type="file" class="form-control" id="arquivoContabilidade" aria-describedby="inputGroupPrepend" required>

此外,我假设您的控制器具有注释RequestMapping(“/holerite”)。

如果没有,你也必须改变

@PostMapping(value = "uploadHoleritesFile")

@PostMapping(value = "/holerite/uploadHoleritesFile")

因为您的表单具有<代码>

 类似资料:
  • 我正在IIS服务器上使用网站面板。我想使用ftp上载文件 我使用了以下代码: 这段代码运行没有错误。当我使用网站面板的文件管理器时,一个文件创建了“Name.ext”,但这个文件大小是0 KB。为什么?我有什么问题?! 我确信windows防火墙允许我这么做。 更新:我正在使用UploadFileTask和UploadFile(unasync)进行操作,但结果与async相同:(

  • 本文向大家介绍SpringBoot后台实现文件上传下载,包括了SpringBoot后台实现文件上传下载的使用技巧和注意事项,需要的朋友参考一下 SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传与下载。前端上传采用百度webUploader插件。有关该插件的使用方法还在研究中,日后整理再记录。本文主要介绍SpringBoot后台对文件上传与下载的处理。 单文件上传 如果

  • 本文向大家介绍详解SpringBoot文件上传下载和多文件上传(图文),包括了详解SpringBoot文件上传下载和多文件上传(图文)的使用技巧和注意事项,需要的朋友参考一下 最近在学习SpringBoot,以下是最近学习整理的实现文件上传下载的Java代码: 1、开发环境: IDEA15+ Maven+JDK1.8 2、新建一个maven工程:   3、工程框架   4、pom.xml文件依赖项

  • 我需要一些上传图像的帮助。 我有两个不同的申请 在我的专用服务器上运行的Springstart应用程序 Angulal-6 Application-在我的云服务器上运行 我需要从我的spring boot应用程序上传一个图像到Angular-6资产文件夹(资产文件夹类似于spring boot应用程序的资源文件夹) 在application.properties我已经声明上传位置,如profile

  • 本文向大家介绍springboot实现文件上传和下载功能,包括了springboot实现文件上传和下载功能的使用技巧和注意事项,需要的朋友参考一下 spring boot 引入”约定大于配置“的概念,实现自动配置,节约了开发人员的开发成本,并且凭借其微服务架构的方式和较少的配置,一出来就占据大片开发人员的芳心。大部分的配置从开发人员可见变成了相对透明了,要想进一步熟悉还需要关注源码。 1.文件上传

  • 我试图上传多个文件使用Spring mvc 4,Spring引导和thymeleaf作为模板引擎,但我无法访问上传的文件,文件被处理为一个多部分文件与内容类型的应用程序/octet-stream. 以及控制器代码: sysout的输出: 上传图像长度:1(即使我上传了多个文件) 文件原始名称(使用getOrialFileName): 文件名(使用getName):文件[] 文件大小: 0 文件内容