Как загрузить файл изображения с помощью модификации с помощью Jetpack Compose AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как загрузить файл изображения с помощью модификации с помощью Jetpack Compose Android

Сообщение Anonymous »


Я хочу загрузить файл изображения на сервер с помощью Retrofit2 в Android Jetpack Compose. Я пытаюсь, но не могу этого сделать. Мой код здесь

# API-интерфейс** интерфейс ImageService { @Мультипартия приостановить развлечение uploadImage( Изображение @Part: MultipartBody.Part, ) } репозиторий** класс ImageRepository @Inject конструктор (частный val imageService: ImageService) { приостановить развлечение uploadImage(file: File): Boolean { вернуть попытку { imageService.uploadImage( изображение = MultipartBody.Часть .createFormData( "изображение", имя файла, файл.asRequestBody() ) ) истинный } catch (e: IOException) { е.printStackTrace() ЛОЖЬ } catch (e: HttpException) { е.printStackTrace() ЛОЖЬ } } } просмотреть модель** fun uploadImage(file: File) { viewModelScope.launch { imageRepository.uploadImage(файл) } } Экран** @Composable весело PickImage() { контекст val = LocalContext.current val imageViewModel = viewModel() Столбец { val imageUri = помните {mutableStateOf(null) } val launcher = RememberLauncherForActivityResult( контракт = ActivityResultContracts.GetContent(), onResult = { imageUri.value = это } ) если (imageUri.value! = ноль) { Изображение( художник = RememberAsyncImagePainter(модель = imageUri.value), ContentDescription = ноль, модификатор = Modifier.size(200.dp) ) } Spacer(модификатор = Modifier.height(10.dp)) Кнопка (onClick = { launcher.launch("изображение/*") }) { Текст( текст = "Галерея", FontWeight = FontWeight.Жирный, размер шрифта = 30.sp ) } //Загрузить Кнопка (onClick = { val inputStream = context.contentResolver.openInputStream(imageUri.value!!) val file = File(context.cacheDir, "mage.png") файл.createNewFile() file.outputStream().use { inputStream!!.copyTo(it) } imageViewModel.uploadImage(файл) }) { Текст (текст = «Загрузить») } } } Я также пытался загрузить файл, используя XML и Kotlin. Итак, с помощью Kotlin файл загружен успешно. Но когда я использую Compose, я сталкиваюсь с проблемой. Может ли кто-нибудь иметь представление об этом. Пожалуйста, поделитесь со мной. Спасибо!
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»