Как я могу исправить эти ошибки, чтобы загрузить некоторые файлы на сервер, связанные с функцией kotlin suspend? - PullRequest
0 голосов
/ 24 апреля 2019

У меня было несколько проблем с загрузкой моих изображений на сервер.Затем я использовал функцию kotlin suspend для реализации конвейера.Но я встретил следующую ошибку сервера. мои ошибки

Это мой код.

fun Route.customerUploadImage() {
logger.info { "Receiveing Image request" };
post("/me/image") {
    logger.info { "Receiveing Image POST request" };
    call.customerService.saveProfileImage(call.receiveMultipart(), loggedUser().userId!!)
    call.respondStatus(HttpStatusCode.Accepted)
}

Это код customerUploadImage в customerService ().

suspend fun saveProfileImage(multipart: MultiPartData, userId: Long) {
    logger.info { "Receving Image Request!!!!" }
    multipart.forEachPart { part ->
        (part as? PartData.FileItem)?.run {
            logger.info { this.headers.get("Content-Type") }
            logger.info { "save image, name: $name, file name: $originalFileName" }
            val imageName = allowedProfileImages.firstOrNull { it == name } ?: throw AppException(ErrorCode.INVALID_IMAGE_NAME)
            bao.put(streamProvider(), "profile/$userId-${imageName.toLowerCase()}", blobContentType).also { resourceUrl ->
                logger.info { "resourceUrl - $resourceUrl" }
                dao.get(Customer::class, userId)?.also { customer ->
                    logger.info { "customer - $customer" }
                    dao.put(customer.copy(images = setOf(resourceUrl, *customer.images.toTypedArray())))
                }
            }
        }
        part.dispose()
    }
}

Я нашелсерверу не удалось получить загруженный файл изображений с информацией журнала.Итак, как я могу исправить эти ошибки?

1 Ответ

0 голосов
/ 24 апреля 2019

Я нашел основную причину выше проблемы.Поскольку для «content-type» задано «application / json», сервер не проводит эти данные.Поэтому я удалил опцию «Content-type» в заголовке.Это работает хорошо.Оригинальный код.

headers: {
    'Content-Type': 'multipart/form-data',
    'Accept': 'application/json'
  },

Сейчас

headers: {
    'Accept': 'application/json'
  },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...