upload(File imageFile) async {
var uploadURL = "http://xxxxxx.org.xx/appdata/members/images";
var stream = new http.ByteStream(DelegatingStream.typed(imageFile.openRead()));
var length = await imageFile.length();
var uri = Uri.parse(uploadURL);
var request = new http.MultipartRequest("POST", uri);
var multipartFile = new http.MultipartFile('file', stream, length,
filename: basename(imageFile.path));
request.files.add(multipartFile);
var response = await request.send();
print(response.statusCode);
response.stream.transform(utf8.decoder).listen((value) {
print(value);
});}
但是,它抛出状态码301,并且没有文件上传到服务器的目标文件夹。有什么问题吗?
答案 0 :(得分:1)
301 HTTP代码表示服务器正在尝试将您重定向到另一个URL-请参见wikipedia's list of response codes。
我猜想您的请求已被重定向,并且客户端没有遵循...尽管MultipartRequest的followRedirects
在默认情况下应为true,但您可以尝试显式设置,并可以增加{{1} }。
我建议您在尝试使用curl(或类似工具)之前测试一下要尝试使用的API,以确保其能够按预期工作。