【发布时间】:2020-10-13 10:01:34
【问题描述】:
我想在服务器上上传图片,很遗憾,我的服务器只支持 jpg/jpeg 文件格式。如果我要上传 png 文件,我会收到错误消息。所以在上传到服务器之前,我想确保文件类型只有 jpg/jpeg。但我担心有些用户可以通过重命名将 png 文件类型更改为 jpg。例如,myfile.png 可以使用 myfile.jpg 轻松重命名。我使用以下方法检查 Android/Kotlin 中的文件类型 -
fun getMimeType(context: Context, uri: Uri): String {
var mimeType = ""
mimeType = if (uri.scheme.equals(ContentResolver.SCHEME_CONTENT)) {
val cr = context.contentResolver
cr.getType(uri) ?: ""
} else {
val fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri
.toString())
MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension.toLowerCase(Locale.getDefault())) ?: ""
}
return mimeType
}
但即使将 png 文件重命名为 jpg,它也只返回 jpg/jpeg。我认为它仅通过文件扩展名进行检查。所以我的问题是 - 有没有办法检查原始文件类型(在我们的例子中是 png 文件)?
快乐编码:-)
【问题讨论】:
标签: android mime-types file-extension file-type