今天遇到一个问题,就是需要向服务端上传图片,结果是从相册选择的图片都能正常上传,但是拍照得到的图片无法上传。
当时我以为是拍照之后得到的图片没有获取成功导致的,但是我断点调试发现拍照后的图片得到了,有路径,并且装换成文件后,文件是存在的,后来上网找了些资料才发现问题的关键点:
类似这样 content://com.jph.takephoto.fileprovider/camera_photos/temp/1474960080319.jpg 一张图片
其中camera_photos
就是file_paths.xml
中paths的name。
因为上述指定的path为path=""
,所以content://com.jph.takephoto.fileprovider/camera_photos/
代表的真实路径就是根目录,即:/storage/emulated/0/
。
content://com.jph.takephoto.fileprovider/camera_photos/temp/1474960080319.jpg
代表的真实路径是:/storage/emulated/0/temp/1474960080319.jpg
。
这样问题就解决了,把虚拟路径拼成真实路径吧,然后上传,果然好用了。。