我想使用multipart / form-data将图像上传到服务器。用户使用图像选择器选择图像,如下所示:
<span class=b>Click</span>
在他选择图像后,我在onActivityResult中使用以下代码接收它:
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
act.startActivityForResult(intent, requestCode);
所以我得到了文件的路径。当我想用这段代码将图像上传到服务器时:
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
String filePath = null;
Cursor cursor = act.getContentResolver().query(selectedImage, filePathColumn, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
filePath = cursor.getString(cursor.getColumnIndex(filePathColumn[0]));
cursor.close();
}
return filePath;
它引发了这个异常:
File file = new File(filePath);
FileInputStream fileInputStream = new FileInputStream(file);
问题是,有些照片被发现并上传(即使是在SD卡上也没有),其中一些没有...例如这一张正在上传:
java.io.FileNotFoundException: /storage/sdcard0/DCIM/100LGDSC/CAM00015.jpg: open failed: ENOENT (No such file or directory)
我有这些权限:
/storage/sdcard0/DCIM/100LGDSC/CAM00008.jpg
所以问题很清楚,可能是某些图像无法找到的原因是什么?