gpt4 book ai didi

spring-boot - Flutter 图像上传到 Spring Boot 服务器不起作用

转载 作者:行者123 更新时间:2023-12-05 05:10:10 24 4
gpt4 key购买 nike

我正在尝试使用以下代码从我的 Flutter 应用程序上传图像:

Future<String> saveImage(File image) async {

var stream = new http.ByteStream(DelegatingStream.typed(image.openRead()));
var length = await image.length();
String token = "blah"; //token for authentication

var uri = Uri.parse(url); //I get the URL from some config

Map<String, String> headers = { "Authorization": "Bearer $token", "content-type": "multipart/form-data" };

var request = new http.MultipartRequest("POST", uri);
request.headers.addAll(headers);
var multipartFile = new http.MultipartFile('file', stream, length);

request.files.add(multipartFile);

var response = await request.send();
print(response.statusCode);
response.stream.transform(utf8.decoder).listen((value) {
print(value);
});
}

但此请求在我的 spring-boot 服务器上失败并出现以下错误:

{"timestamp":1562637369179,"status":400,"error":"Bad Request","exception":"org.springframework.web.multipart.support.MissingServletRequestPartException","message": “所需的请求部分‘文件’不存在”,“路径”:“/api/v1/user/photo”

这是我的 Java Controller 方法的样子:

@RequestMapping(value = "/photo", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<String> uploadImage(@RequestPart(required = true) @RequestParam("file") MultipartFile image) throws IOException {
}

我想提一下,如果我使用 postman 上传图片,该方法是有效的。我的 flutter 代码似乎有问题。

感谢您的帮助。

最佳答案

想通了。我没有使用 new http.MultipartFile() 构造函数,而是使用了这个静态方法:

request.files.add(await http.MultipartFile.fromPath('file', image.path,
contentType: new MediaType('image', imageType)));

关于spring-boot - Flutter 图像上传到 Spring Boot 服务器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56944570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com