小白菜吃兔子 2024-02-29 09:21 采纳率: 72.5%
浏览 3
已结题

nginx服务器传file遇到问题

首先,java后台是没有问题的,因为我用postman测试过,向后台传文件时处理是没有问题的。
但是用nginx服务器部署前端项目时,发送excel文件到后台处理时会报400错误,
文件很小只有10k,不考虑nginx的文件上传大小限制。
然后就是别的请求都可以正常通信,就是前端的文件处理有问题。
附一段前端接口代码:


      confirmUpload() { //确认上传
        var file = new FormData();
        this.fileList.forEach((val) => {
              file.append("file", val.raw);
              console.log(val.raw);
            }
        );
        console.log(file)
        axios.post("/weixin/excelimport", file)
            .then((res) => {
              if(res.data.state == 200){
                data.dialoglist = res.data.pidlist;
                ElMessage({
                  message: '读取成功',
                  type: 'success',
                })
                data.dialogOfUpload = false
                data.addpid=true
              }else {
                ElMessage({
                  message: '读取失败',
                  type: 'error',
                })
              }
            }).catch(error => {
          console.log(error);
        });

      },
  • 写回答

3条回答 默认 最新

  • GISer Liu 2024-02-29 09:22
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据你提供的问题描述,可以初步分析出可能的原因和解决思路如下:

    1. 前端代码问题
    • 首先确保前端代码没有错误,可以通过浏览器开发者工具查看网络请求是否正常发送,并检查请求体中文件是否正确被添加到 FormData 中。
    • 你的代码看起来基本正确,但可能存在问题的地方是 val.raw 的获取是否正确,确保 this.fileList 中的每个元素都有 raw 属性,并且 val.raw 指向正确的文件数据。
    1. Nginx 配置问题
    • 确保 Nginx 配置中没有对文件上传请求进行特殊的限制或重定向,比如可能需要检查 Nginx 配置中的 client_max_body_size 参数,确保上传文件大小不受限制。
    • 检查 Nginx 的日志,查看是否有关于该请求的错误信息,例如请求被拒绝或重定向等。
    1. 后端接口问题
    • 确保后端接口能够正常处理文件上传请求,并且没有对文件大小、格式等方面的限制。
    • 可以通过 Postman 等工具再次测试后端接口,确保接口能够正确处理文件上传请求。
      解决方案:
    • 首先确认前端代码中文件数据的获取和添加到 FormData 的逻辑是否正确,确保文件数据被正确发送到后端。
    • 检查 Nginx 的配置,确保没有对文件上传请求进行限制或重定向。
    • 检查后端接口,确保能够正常处理文件上传请求,并且没有对文件大小、格式等方面的限制。
      如果以上步骤都确认无误,但问题仍然存在,建议进一步查看前端、Nginx 和后端

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月8日
  • 已采纳回答 2月29日
  • 创建了问题 2月29日