выгрузка растрового изображения в формате jpeg на сервер mysql с использованием библиотеки okhttpclient - PullRequest
0 голосов
/ 10 сентября 2018

Я работаю над приложением, которое имеет функциональные требования для загрузки изображений (панорамирование, adhar, проверка).

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

Теперь моя задача - загрузить это растровое изображение в формате jpeg на сервер в многочастном формате.

я пробовал этот код

Моя деятельность:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
   super.onActivityResult(requestCode, resultCode, data)

   if (requestCode == PICK_IMAGE) {
       if (resultCode == Activity.RESULT_OK) {
               try {
               val inputStream1 = contentResolver.openInputStream(data?.data!!)
               bitmap = BitmapFactory.decodeStream(inputStream1)
               persistImage(bitmap, "Image")
               mUploadPanCardImageButton!!.setImageBitmap(bitmap)
               mCheckBoxPanCard?.isChecked = true
               mUploadPanCardTextView?.visibility = View.GONE
           } catch (e: FileNotFoundException) {
               e.printStackTrace()
           }
       }
   } else if (requestCode == TAKE_PICTURE) {
       if (resultCode == Activity.RESULT_OK) {
           val extras1 = data?.extras
           bitmap = extras1!!.get("data") as Bitmap
           persistImage(bitmap, "image of pan in camera")
           mUploadPanCardImageButton!!.setImageBitmap(bitmap)

           mCheckBoxPanCard?.isChecked = true
           mUploadPanCardTextView?.visibility = View.GONE
       }else{

             }
      }

сжатие изображения:

private fun persistImage(bitmap: Bitmap?, name: String): File {
   val filesDir = applicationContext.filesDir
   val imageFile = File(filesDir, "$name.jpg")

   val os: OutputStream
   try {
       os = FileOutputStream(imageFile)
       bitmap!!.compress(Bitmap.CompressFormat.JPEG, 100, os)
       os.flush()
       os.close()
   } catch (e: Exception) {
       // Log.e(javaClass.getSimpleName(), "Error writing bitmap", e)
   }
   //     Toast.makeText(applicationContext,"Image is stored",Toast.LENGTH_LONG).show()
   return imageFile
  }

код для загрузки на сервер:

try {

           val MEDIA_TYPE_JPG = MediaType.parse("image/jpeg")
           val requestBody: RequestBody = MultipartBody.Builder()
                   .setType(MultipartBody.FORM)
                    .addFormDataPart("panCardFile", 
                    image,
                           RequestBody.create(MEDIA_TYPE_JPG,image)
                   .build();
           val request = Request.Builder()
                   .url("upload url")
                   .post(requestBody)
                   .build()
           val client = OkHttpClient()
           client.newCall(request).enqueue(object : Callback {
               override fun onFailure(call: Call, e: IOException) {
                   Log.e("response is failed ", call.request().body().toString())
               }

               @Throws(IOException::class)
               override fun onResponse(call: Call, response: Response) {
                   Log.e("response success enterd", response.toString())
                   if (response.code() == 200) {
                       val intentUploadDocsPage = Intent(applicationContext, MainActivity::class.java)
                       startActivity(intentUploadDocsPage)
                   } else {

                   }
               }
           })
           //     val response = client.newCall(request).execute()
           //    return JSONObject(response.body()?.string())
       } catch (e: UnknownHostException) {
           Log.e("unknown", "Error: " + e.localizedMessage)
       } catch (e: UnsupportedEncodingException) {
           Log.e("unsupported", "Error: " + e.localizedMessage)
       } catch (e: Exception) {
           Log.e("other", "Other Error: " + e.getLocalizedMessage())
       }

Я пытался реализовать этот код, но не смог преобразовать в требуемый формат. Я не могу определить, какую переменную мне следует поместить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...