Я пытаюсь опубликовать образ в Spring boot и позже загрузить этот образ. Изображение Psot легко, я сохраняю изображение в локальной папке и сохраняю в BD только имя, но я не знаю, как восстановить это изображение и использовать его в дротике.
У меня есть этот код при весенней загрузке для восстановления образа:
@GetMapping("/obtenerimagen/{path}")
void imagen(@PathVariable String path,
HttpServletResponse response) throws IOException {
File file = new File(this.uploadingDir + path); // or you can use Paths.get(this.uploadingDir + path); instead
Files.copy(file.toPath(), response.getOutputStream());
response.setContentType("image/jpeg"); // your content type here
}
И в дротике я пытаюсь получить изображение с этим кодом:
Future<void> _getImage() async {
final dio = new Dio();
dio.interceptors
.add(InterceptorsWrapper(onRequest: (RequestOptions options) {
options.path = producto.imagen.toString();
options.baseUrl = "https://10.0.2.2:8443/api/obtenerimagen/";
options.connectTimeout = 5000;
return options; //continue
}, onResponse: (Response response) {
// Do something with response data
if (response.statusCode == 200) {
setState(() {
isImageLoaded = true;
pickedImage = File(response.data);
});
}
return response; // continue
}, onError: (DioError e) {
// Do something with response error
final snackBar = SnackBar(
content: Text(
'Error loading image.'),
duration: Duration(seconds: 5),
action: SnackBarAction(
label: 'Ok',
onPressed: () {
// Some code to undo the change!
},
),
);
// Find the Scaffold in the Widget tree and use it to show a SnackBar!
_scaffoldKey.currentState.showSnackBar(snackBar);
return e; //continue
}));
try {
await dio.get('');
} on DioError catch (error) {
print(error.toString());
}
}
Как я могу получить изображение из API?