android - 如何将图像文件使用socket.io从android发送到节点服务器?
问题描述
我试图在 android 设备中捕获相机预览并将图像文件编码为 Base64 字符串。但它不起作用。( ImageFile(path, Uri) 到 Base64 编码的字符串在 Kotlin 中有问题)
override fun onImageSaved(output: ImageCapture.OutputFileResults) {
var photoPath = photoFile.canonicalPath
val savedUri = Uri.fromFile(photoFile)
val msg = "Photo capture succeeded: $savedUri"
Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
Log.d(TAG, msg)
}
并打印日志
2020-09-12 18:52:52.608 14880-14880/com.soyeon.cameraxtutorial D/CameraXBasic: Photo capture succeeded: file:///storage/emulated/0/Android/media/com.soyeon.cameraxtutorial/CameraX%20Tutorial/2020-09-12-18-52-52-224.jpg
我单击了该日志并出现了对话框。
Cannot find file file:///storage/emulated/0/Android/media/com.soyeon.cameraxtutorial/CameraX%20Tutorial/2020-09-12-18-52-52-224.jpg
但是文件的所有权限都已检查。
此外,检查到达响应编码字符串中的文件类型错误。
如果将 Base64 字符串发送到服务器不是正确的解决方案,请给我一些其他解决方案来使用 socket.io 发送图像
解决方案
推荐阅读
- mysql - Magento cron 或 mysql 事件调度器哪一个基于性能最好?
- php - 如何检查事件是否已执行?
- android - Flutter 如何使用 AssetBundle 存储和访问文件
- ruby-on-rails - Draft.js 在 Rails 应用程序视图中未显示任何内容
- javascript - Ajax Uncaught TypeError:非法调用
- javascript - 如何在 reactjs 中访问自定义标头
- ruby-on-rails - 在 ruby 中搜索 imagen 的特定 api 对我不起作用
- python - 合并函数不返回合并的数据框
- crystal-reports-2008 - 如何在 CRYSTAL REPORT 2008 中使用印度货币符号
- c++ - 为什么我的 cout 会同时执行,尽管 cin 应该在两者之间读取?