当我从图库中获取图像并通过转换将其发送到请求正文时,我收到一条消息,指出该文件无法打开。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
when (requestCode) {
OPEN_AUDIO -> {
if (data != null) {
var audioUri = data.data
getAudioFile = File(audioUri!!.path)
writing_voice_imageView.setImageResource(R.drawable.icon_sound)
}
}
OPEN_GALLERY -> {
if (data != null) {
var imageUri = data.data
getImageFile = File(imageUri!!.path)
writing_voiceCover_imageView.setImageURI(imageUri)
}
}
}
}
}
从画廊拍摄图像并将其转换为文件的代码
private fun postWriting() {
var content = writing_writing_edit.toString()
var hashtags: MutableList<String> = viewModel.hashtags(content)
var requestHashMap: HashMap<String, RequestBody> = hashMapOf()
if (getImageFile != null && content != null) {
when (sound) {
true -> requestHashMap["sound"] = file!!.asRequestBody("multipart/form-data".toMediaTypeOrNull())
false -> requestHashMap["sound"] = getAudioFile!!.asRequestBody("multipart/form-data".toMediaTypeOrNull())
else -> {
Toast.makeText(this, "오디오 파일이 필요합니다", Toast.LENGTH_LONG).show()
return
}
}
requestHashMap["content"] = content.toRequestBody("multipart/form-data".toMediaTypeOrNull())
requestHashMap["img"] = getImageFile!!.asRequestBody("multipart/form-data".toMediaTypeOrNull())
for (i in hashtags.indices) requestHashMap["hashtags"] = hashtags[i].toRequestBody("multipart/form-data".toMediaTypeOrNull())
viewModel.writing(requestHashMap)
}
changeView()
}
更改为请求正文并将其发送到服务器的代码
getImageFile: File = File(Environment.getExternalStorageDirectory(),"yally.png")
我设置了文件路径。
Content-Type:multipart / form-data;边界= 47357aef-90f9-472b-b1c5-bca3a8194dc3 W / System.err:统计信息失败:ENOENT(无此类文件或目录):/ external / images / media / 203 I / okhttp.OkHttpClient:内容长度:6180 W / System.err:统计信息失败:ENOENT(无此类文件或目录):/ external / images / media / 203 E / WritingViewModel:/ external / images / media / 203:打开失败:ENOENT(没有这样的文件或目录)
错误代码