I am getting Struggle to send an array of images to backend API param here is my code :
var imagesFiles: ArrayList<File> = ArrayList()
val mMultiPartFileMap:HashMap<String, ArrayList<File>> =
HashMap<String,
ArrayList<File>>();
private fun callUpdateProfileApi() {
var sizeArray:Int=0
binding.progressBar.visibility=View.VISIBLE
var imageFileOne: File? = null
imagesFiles.clear()
if (selecteImageUri_1 != null) {
imagesFiles.add(File(getPath(selecteImageUri_1!!)))
}
if (selecteImageUri_2 != null) {
imagesFiles.add(File(getPath(selecteImageUri_2!!)))
}
if (selecteImageUri_3 != null) {
imagesFiles.add(File(getPath(selecteImageUri_3!!)))
}
if (selecteImageUri_4 != null) {
imagesFiles.add(File(getPath(selecteImageUri_4!!)))
}
if (selecteImageUri_5 != null) {
imagesFiles.add(File(getPath(selecteImageUri_5!!)))
}
if (selecteImageUri_6 != null) {
imagesFiles.add(File(getPath(selecteImageUri_6!!)))
}
if (selecteMainImageUri != null) {
imageFileOne = File(getPath(selecteMainImageUri!!))
sizeArray=imagesFiles.size+1
}else{
sizeArray=imagesFiles.size
}
mMultiPartFileMap.put("images[]",imagesFiles)
AppLogger.e("images array","===="+imagesFiles.toString())
Log.d("@@imageAll", imagesFiles.toString())
AndroidNetworking.upload(Constant.BASE_URL + "app.php?api=editprofile")
.addMultipartFile("image", imageFileOne)
/* .addMultipartFile("image1", imagesFiles[0])
.addMultipartFile("image2", imagesFiles[1])*/
.addMultipartParameter("userid", usetId)
.addMultipartParameter("username", binding.etName.text.toString())
.addMultipartParameter("image", binding.etName.text.toString())
.addMultipartParameter("bio", binding.etBio.text.toString())
/*.addMultipartParameter("education", binding.etBio.text.toString())*/
.addMultipartParameter("dob", binding.etDob.text.toString())
.addMultipartParameter("city", binding.etHomeTown.text.toString())
.addMultipartParameter("fb_link", binding.etFbLink.text.toString())
// .addMultipartParameter("image_size",sizeArray.toString())
.addMultipartFileList(mMultiPartFileMap)
.setTag("editprofile")
.setPriority(Priority.HIGH)
.build()
.getAsString(object : StringRequestListener {
override fun onResponse(response: String) {
AppLogger.e("MoodMatch response", "=====" + response)
Log.d("@@image2", response)
var gson: Gson = Gson()
var updateProfileModel = gson.fromJson(response, UpdateProfile::class.java)
if (updateProfileModel.error == false) {
if (updateProfileModel.data != null) {
MoodApplication.sharedPreference.getValueUserLogedIn()!!.data!!.image =
updateProfileModel.data.image
} else {
AppLogger.toast("Something went wrong")
}
AppLogger.toast(updateProfileModel.message)
} else {
AppLogger.toast(updateProfileModel.message)
}
binding.progressBar.visibility=View.GONE
}
override fun onError(error: ANError) {
binding.progressBar.visibility=View.GONE
// handle error
AppLogger.toast(error.localizedMessage)
Log.e(" MoodMatc honError", "=======" + error.localizedMessage)
}
})
}