⑴ 如何用php判断上传的是否为图片阿
PHP 图片上传,如果不做任何判断的话,随便一个文件如 rar,zip,php,java等文件改个文件名,改个后缀就能以图片形式上传的服务器,往往会造成极大的危害!工具/原料PHPapache / nginx / iisphpstorm / netbeans / notepad++ / editplus方法/步骤第一种方法:如果是只是单纯判断是否是图片格式的话,我使用 getimagesize 方法function checkIsImage($filename){ $alltypes = '.gif|.jpeg|.png|.bmp';//定义检查的图片类型 if(file_exists($filename)){ $result= getimagesize($filename); $ext = image_type_to_extension($result']); return stripos($alltypes,$ext); }else{ return false; }}第二种方法比较强大一些,能判断多种格式function getReailFileType($filename){ $file = fopen($filename, "rb"); $bin = fread($file, 2); //只读2字节 fclose($file); $strInfo = @unpack("C2chars", $bin); $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); $fileType = ''; switch($typeCode){ case 7790: $fileType = 'exe';break; case 7784: $fileType = 'midi'; break; case 8297: $fileType = 'rar'; break; case 255216: $fileType = 'jpg';break; case 7173: $fileType = 'gif';break; case 6677: $fileType = 'bmp';break; case 13780: $fileType = 'png';break; default: $fileType = 'unknown'; } return $fileType;}第三种方法:PHP gd类库函数提供了一个exif_imagetype() 函数, 用来读取图像的第1个字节, 还会对图片的签名做检查。 如果格式不对,会返回false。 其实啊, 这个方法和第一种方法有异曲同工之妙。 但是因为这个是库函数,效率要比第一种方法高得多。此函数用法很简单,传入路径,然后通过判断是否等于某个常量, 例如 gif格式的IMAGETYPE_GIF第四种方法:php重绘效率很低的一种方法,但也是一种思路: 把传输过来的文件,不论什么文件都以resource 类型绘到图片中去, 如果是图片,能还原出来。如果不是图片,那绘画不出来,而且里面的危险代码也没有了。具体请看:总结: 我曾经在网上看到过有人说:相信懂得php的人都用过XX函数。 我打开一看,就是一个使用后缀来判断上传类型的函数。 同学在做类似功能的时候一定要揭开表现看到本质,否则经过伪装的图片在上传之后,会对服务器造成极大安全隐患。
⑵ 怎么确定一个文件是jpg图片文件
找到这张图片所在位置,就能看到它的文件名是*.jpg或者是其他的图片格式如果没有后面的.jpg,可以到菜单栏“工具”—“文件夹选项”—“查看”选项卡—将“隐藏已知文件类型的扩展名”前面的勾去掉—“确定”就可以看到了
⑶ Delphi判断一个文件是不是JPG图片
Jpg、JPEG 文件的文件格式是:
– 文件头标识 (2 bytes): $ff, $d8
– 文件结束标识 (2 bytes): $ff, $d9
可以读取文件的前2个字节,并判断是否是特定的标志量,基本上就可以判断是否是 jpg 文件,如果要求更高一点,可以再检测文件的结束标识。
以下是示例代码:
functionIsJpegFile(FileName:string):Boolean;constRightBuf:array[0..3]ofByte=($FF,$D8,$FF,$D9);varBuf:array[0..3]ofByte;beginFillChar(Buf,4,0);withTFileStream.Create(FileName,0)dobeginPosition:=0;ReadBuffer(Buf[0],2);Position:=Size-2;ReadBuffer(Buf[2],2);Free;end;Result:=CompareMem(@RightBuf[0],@Buf[0],4);end;procereTForm1.Button1Click(Sender:TObject);//测试beginifSelf.OpenDialog1.ExecutethenifIsJpegFile(Self.OpenDialog1.FileName)thenShowmessage('IsJpgFile');end;
⑷ Php里面判断一个文件是不是一个真正的图片
好像有一个函数getimagesize,他可以返回指定文件的信息,如果是一张图片他会返回一个数组,可以查一下手册
⑸ 判断文件是图片,doc,rar
你要知道是什么文件,就如你说的,直接把后缀加上就可以了 你可以试下看看文件的大小,再根据文件名判断,比如图片的话,一般都带数字如:DSC_0643,而且一般也就几百K到1、2M的大小,WORD,EXCEL这种的文件,一般就几百K,而且这种文件的名字一般都会有义意的,如果文件有十几到几十上面M的话,可能是RAR文件了,只能这么判断试试,对了,有多少个文件啊?
⑹ java如何判断文件是否为图片
用方来法截取自.jpg或者.gif格式的,然后判断嘛。File file = new File(the new file path);FindFolderAllFiles(CString csFolderName) { CFileFind f; BOOL bFind=f.FindFile(csFolderName+ "\\*.* "); while(bFind) { bFind = f.FindNextFile(); if(f.IsDots()) continue; if(f.IsDirectory()) { FindFolderAllFiles(csFolderName+ "\\ "+f.GetFileName()); } //Get File Name TRACE(_T( "%s\r\n "),f.GetFileName());//f.GetFileName.. } }
⑺ 如何判断一个文件是图片文件(能适应所有图片格式)
picturebox控件可以加载picture1.picture=loadpicture(path)如果报错则不是图片
⑻ 怎么判断一个文件的类型,比如是不是图片
通过File的lastIndexOf('.')找到位置,然后用substring截取字符,判断就行了
⑼ Java根据文件内容判断是否是图片。
这样,当把一个非图片文件的扩展名改为jpg、gif或者bmp时,就能绕过限制。所以必须得通过读取文件内容来进行判断。这里提供两种实现代码。1、ImageInputStream iis = ImageIO.createImageInputStream(resFile);//resFile为需被Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);if (!iter.hasNext()) {//文件不是图片 System.out.println("此文件不为图片文件");}2、BufferedImage bi = ImageIO.read(resFile);if(bi == null){ System.out.println("此文件不为图片文件");}
⑽ C#判断上传文件是否是图片,防止木马上传
/// <summary/// 判断文件是否为图片/// </summary/// <param name="path"文件的完整路径</param/// <returns返回结果</returnspublic Boolean IsImage(string path){try{System.Drawing.Image img = System.Drawing.Image.FromFile(path);return true;}catch (Exception e){return false;}}方法二,判断文件头/// <summary/// 根据文件头判断上传的文件类型/// </summary/// <param name="filePath"filePath是文件的完整路径 </param/// <returns返回true或false</returnsprivate bool IsPicture(string filePath){try{FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);BinaryReader reader = new BinaryReader(fs);string fileClass;byte buffer;buffer = reader.ReadByte();fileClass = buffer.ToString();buffer = reader.ReadByte();fileClass += buffer.ToString();reader.Close();fs.Close();//255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar{return true;}else{return false;}}catch{return false;}}据说方法二针对常规修改的木马有效,也就是直接修改扩展名的,比如把.asp改成.jpg这种。但是对于那种用工具生成的jpg木马没有效果。推荐大家用第一种好了。
未经允许不得转载:山九号 » 判断是否图片文件|Php里面判断一个文件是不是一个真正的图片