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, и в папку назначения сервера не загружается файл. что могло быть не так?
Код HTTP 301 означает, что сервер пытается перенаправить вас на другой URL-адрес - см. список кодов ответов википедии.
Я предполагаю, что ваш запрос был перенаправлен, а клиент не следует ... хотя MultipartRequest followRedirects должен быть истинным по умолчанию, вы можете попробовать установить это явно, и вы можете увеличить maxRedirects.
Я предлагаю протестировать API, который вы пытаетесь использовать с curl (или аналогичным), чтобы убедиться, что он работает должным образом, прежде чем пытаться использовать flutter.
Мой друг, я пробовал использовать followRedirects и maxRedirects! но это та же проблема. request.followRedirects = true; request.maxRedirects = 10;