#flutter #dart #file-upload
#flutter #dart #загрузка файла
Вопрос:
Мне нужно отправить изображение на серверную часть, которая поддерживает загрузку мультимедиа в теле запроса в виде двоичного файла.
Если я попытаюсь загрузить изображение через Postman, используя опцию двоичного тела, со значением заголовка ‘Content-Type’: ‘image / jpg’, изображение загружается правильно, и я могу получить доступ к загруженным носителям через URL-адрес ответа из серверной части.
То же самое, когда я пытаюсь сделать это с Flutter, я получаю код ответа 200, но, я думаю, загруженный файл поврежден. Ниже приведен код, который я использую:
var response = await http.put(URL),
headers: {
'Content-Type': "image/jpg",
'Accept': "*/*",
'Content-Length': File(portraitImagePath).lengthSync().toString(),
'Connection': 'keep-alive',
},
body: File(portraitImagePath).readAsBytesSync(),
);
Пожалуйста, помогите мне определить проблему и завершить этот процесс загрузки.
Ответ №1:
Обновление рабочего кода, чтобы он мог помочь любому, кто сталкивается с такой же проблемой.
var response = await http.put(URL),
headers: {
'Content-Type': "image/jpg"
},
body: await File(portraitImagePath).readAsBytes(),
);
Я пропустил включение await при чтении изображения, а также изменил readAsBytes() на readAsBytesSync() из readAsBytesSync()