• 220 阅读
  • 1 回复

NET判断上传文件是否为图片类型,防止非法上传文件

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)

           //https://www.zhidao91.com/donet-upload-image-validate/
           //.NET判断上传文件是否为图片类型,防止非法上传文件


           //https://blog.csdn.net/heling0223/article/details/6771001
           //根据二进制流判断上传文件类型是否合法(非扩展名)








           //https://www.cnblogs.com/liujiaxian/p/6336805.html 可用










       /// 常见文件类型文件头
       /// http://www.chinadmd.com/file/swvcpsipprsiax66auewris3_1.html



           //JPEG(jpg),文件头: FFD8FF
           //PNG(png),文件头: 89504E47
           //GIF(gif),文件头: 47494638
           //TIFF(tif),文件头: 49492A00
           //Windows Bitmap(bmp),文件头: 424D
           //CAD(dwg),文件头: 41433130
           //Adobe Photoshop(psd),文件头: 38425053
           //Rich Text Format(rtf),文件头: 7B5C727466
           //XML(xml),文件头: 3C3F786D6C
           //HTML(html),文件头: 68746D6C3E
           //Email[thorough only] (eml),文件头: 44656C69766572792D646174653A
           //Outlook Express(dbx),文件头: CFAD12FEC5FD746F Outlook(pst),文件头: 2142444E
           //MS Word/ Excel(xls.or.doc),文件头: D0CF11E0
           // MS Access(mdb),文件头: 5374616E64617264204A WordPerfect(wpd),文件头: FF575043
           //Postscript(eps.or.ps), 文件头: 252150532D41646F6265 Adobe Acrobat(pdf),文件头: 255044462D312E
           //Quicken(qdf),文件头: AC9EBD8F
           //Windows Password(pwl),文件头: E3828596
           //ZIP Archive(zip),文件头: 504B0304
           //RAR Archive(rar),文件头: 52617221
           //Wave(wav),文件头: 57415645
           //AVI(avi),文件头: 41564920
           //Real Audio(ram),文件头: 2E7261FD
           //Real Media(rm),文件头: 2E524D46
           //MPEG(mpg),文件头: 000001BA
           //MPEG(mpg),文件头: 000001B3
           //Quicktime(mov),文件头: 6D6F6F76
           //Windows Media(asf),文件头: 3026B2758E66CF11 MIDI(mid),文件头: 4D546864



最终使用:


https://blog.csdn.net/keeyce/article/details/50720577


代码 复制 - 运行

public class ImageTypeCheck {


 public static String bytesToHexString(byte[] src) {


  StringBuilder stringBuilder = new StringBuilder();
  if (src == null || src.length <= 0) {
   return null;
  }
  for (int i = 0; i < src.length; i++) {
   int v = src[i] & 0xFF;
   String hv = Integer.toHexString(v);
   if (hv.length() < 2) {
    stringBuilder.append(0);
   }
   stringBuilder.append(hv);
  }
  return stringBuilder.toString();
 }


 
 public static String getPicType(byte[] b) {
  try {
   String type = bytesToHexString(b).toUpperCase();
   if (type.contains("FFD8FF")) {
    return "jpg";
   } else if (type.contains("89504E47")) {
    return "png";
   } else if (type.contains("47494638")) {
    return "gif";
   }else if (type.contains("424D")) {
    return "bmp";
   }else{
    return "noimg";
   }
   //tif tiff
   /*else if (type.contains("49492A00")) {
    return "tif";
   }*/ 
  } catch (Exception e) {
   e.printStackTrace();
  } 
  return null;
 }
}
小鱼的淘宝店铺-多多支持哇

SpringMVC返回图片的几种方式

视频在线上传+队列转换FLV+水印+捉图+修复+获时+转3GP(API语言不限,开视频站必备!)
@Datapublic enum MediaTypeEnum {    ImageJpg("jpg", "image/jpeg", "FFD8FF"),    ImageGif("gif", "image/gif", "47494638"),    ImagePng("png", "image/png", "89504E47"),    ImageWebp("webp", "image/webp", "52494646"),    private final String ext;
https://cloud.tencent.com/developer/article/1038579
小鱼的淘宝店铺-多多支持哇