2037824892 2024-06-15 14:43 采纳率: 87%
浏览 1
已结题

java后端获取前端json图片数组,没有图片数据

java后端的http接口,接收app上传的图片和相关的数据,其他数据能接收,但图片数据没有

img

img

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-15 14:43
    关注

    引自免费微信小程序:皆我百晓生

    从描述来看,后端在处理前端发送的包含图片和其它数据的请求时,只收到了文本数据,而没有接收到图片数据。这通常发生在处理multipart/form-data类型的POST请求时,因为图片数据是以二进制形式附带在请求中的。

    为了解决这个问题,后端的控制器方法应该使用正确的注解来接收文件数据。下面是一个修改后的示例代码,展示如何在Spring Boot应用中正确地接收文件和其它表单数据:

    import org.springframework.web.bind.annotation.*;
    import org.springframework.web.multipart.MultipartFile;
    
    @RestController
    @RequestMapping("/check")
    public class PhotoDemo {
    
        @PostMapping(value = "/CheckManager", produces = "application/json;charset=utf-8")
        public String demo(@RequestParam("files") MultipartFile[] files,
                           @RequestParam Map<String, String> otherData) {
            
            for (MultipartFile file : files) {
                System.out.println("File Name: " + file.getOriginalFilename());
                System.out.println("File Size: " + file.getSize());
            }
            
            System.out.println("Other Data: " + otherData);
            
            return "Files and data received successfully.";
        }
    }
    

    在这个例子中,@RequestParam("files") MultipartFile[] files用于接收一个或多个文件,而@RequestParam Map<String, String> otherData用于接收其它非文件数据。注意,files参数的名字应与前端发送请求时使用的name属性匹配。

    对于前端(APP)部分,确保在发送请求时使用了multipart/form-data作为Content-Type,并且每个文件字段都有正确的name属性,例如name="files"

    如果前端是使用JavaScript或任何其他语言通过API发送请求,确保请求是这样构造的:

    let formData = new FormData();
    formData.append('files', fileBlob1, 'file1.png');
    formData.append('files', fileBlob2, 'file2.png');
    formData.append('dj', '15');
    formData.append('pdr', 'admin');
    // ... 添加其他数据
    
    fetch('/check/CheckManager', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error(error));
    

    以上代码展示了如何从前端发送包含多个文件和其他数据的multipart/form-data请求。如果按照这些步骤操作仍然遇到问题,建议检查服务器的日志以寻找更具体的错误信息,或者使用网络调试工具(如Chrome DevTools的Network标签页)来检查请求的实际内容和响应状态。

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

报告相同问题?

问题事件

  • 系统已结题 7月5日
  • 已采纳回答 6月27日
  • 创建了问题 6月15日

悬赏问题

  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络