Может кто-нибудь помочь мне с кодом для создания миниатюры для любого файла (CSV, XLSX, DOCX, PDF, и т. Д. c) в Scala. Я загружаю файл в облачном хранилище, и с помощью облачного хранилища мы можем создавать эскизы изображений по ссылке: https://cloudinary.com/blog/how_to_generate_thumbnails_for_office_documents_using_cloudinary_and_aspose Но я не могу понять, как добиться того же в Scala. Ниже мой код загрузки файла.
request.body.asMultipartFormData.map { multipartFormData =>
multipartFormData.file("file").map { file =>
val companyId = cachedUser.companyId
val splitFile = file.filename.split("\\.")
val fileExtension = splitFile(splitFile.length - 1)
if (!notAllowedFileExt.contains(fileExtension)) {
val fileName = UserUtil.md5(cachedUser.userId + "&" + user.name + /*"&" + user.rememberToken +*/ "&" + scala.util.Random.nextInt) + "." + fileExtension
//val fileName = "userpic" + cachedUser.userId + "." + fileExtension
Logger.info(request.remoteAddress + " : " + cachedUser.userId + " --> uploaded file " + filesUploadPath + "/" + fileName)
val fileLoc = new File(filesUploadPath + "/" + fileName)
file.ref.moveTo(fileLoc, replace = true)
val cloudFileName = "rewards_and_recognition/attachments/"+companyId + "/userfile"+ unixTimestamp + cachedUser.userId /**** Cloudinary File Name ****/
val (cloudinaryAttachmentUrl, publicId, url) = Await.result(CloudinaryUpload.imageUpload(cloudFileName, fileLoc.getAbsolutePath, file.contentType), Duration(40, "second"))
if(cloudinaryAttachmentUrl != ""){
Ok(Json.obj("status_message" -> "File uploaded", "filename" -> file.filename, "cloud_attachment" -> url, "public_id" -> publicId))
} else
NotFound(Json.obj("err" -> "Cloudinary upload failed!"))
} else {
BadRequest(Json.obj("err" -> "Invalid File Format!"))
}
}.getOrElse(BadRequest(Json.obj("err" -> "Please select a file and press upload button")))
}.getOrElse(NotFound(Json.obj("err" -> "MultipartFormData not found")))