在我的应用程序中,我们正在上传图像/音频/视频文件。我已经允许每种类型的一些固定的允许扩展集。如果扩展名与提供的扩展名列表不匹配,则不会上传,但如果用户将 .exe、.pdf 文件重命名为 .jpg 或 .png,则会清除 UI 验证并调用 servlet 并上传会发生。但是以后会出问题。
有没有办法在后端检查相同的内容,然后相应地抛出异常。
我试过使用:
import java.net.*;
public class FileUtils{
public static String getMimeType(String fileUrl) throws java.io.IOException {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String type = fileNameMap.getContentTypeFor(fileUrl);
return type;
}
public static void main(String args[]) throws Exception {
System.out.println(FileUtils.getMimeType("file:/home/kavinder/file.pdf"));
// this is a .jpg file renamed to .pdf
}
}
这仅根据扩展名返回。和
import javax.activation.MimetypesFileTypeMap;
import java.io.File;
class GetMimeType {
public static void main(String args[]) {
File f = new File("/home/kavinder/file.jpg");
System.out.println("Mime Type of " + f.getName() + " is " + new MimetypesFileTypeMap().getContentType(f));
}
}
这总是将 mime 类型返回为:application/octet-stream
先感谢您