在我的应用程序需要图像onActivityResult,但却接收到类似.pdf的内容后,我的应用程序崩溃了。我知道我的代码应该在崩溃之前做一个检查,以确保传入的数据确实是一个图像,但我认为指定一个mime类型就足够了。
我的代码:
//显示弹出窗口
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);这段代码使dropbox、gallery、Google Drive等显示为选项。但即使是Google Drive也允许你选择一个.pdf。我是否设置了错误的意图类型?我是不是坚持允许违规的应用程序让用户选择pdf或其他文件类型?
发布于 2014-06-13 04:03:39
即使系统可以为您验证文件扩展名,您仍然需要验证来自用户的数据。如果潜在恶意用户简单地将.pdf更改为.jpg,该怎么办
发布于 2014-06-13 04:03:41
是的,那会发生的。所以你需要在你的onActivityResult()中检查你获取图片URI的地方,并检查是否有像.jpg,.png,.jpeg等扩展名。然后只有你应该导入文件,否则显示一个Toast或Dialog。
https://stackoverflow.com/questions/24192959
复制相似问题