运丰裴 运丰裴
关注数: 1 粉丝数: 15 发帖数: 961 关注贴吧数: 9
帮看看这个判断上传的图像文件类型还有哪些地方要修正完善下.. 帮看看这个判断上传的文件类型还有哪些地方要修正下.. 最近在学到文件上传部分,看视频部分用$_FILES['userfile']['type']来判断,但有些jpg文件就是判断为空,因此搜索了百度,学着改了下用自定义函数写,帮看下可以的吗?还有什么方法判断呀??? <?php //测试bmp jpg png gif文件类型 $filetest="./testfile/png5.png"; //测试文件 echo $filetest."<br/>" .getFileType($filetest); //测试 /** * @param string $filename 文件类型 * @return string 文件类型,没有找到返回:other 文件不存在返回:0 */ function getFileType($filename) { $filetype="other"; if(!file_exists($filename)) return 0; //判断文件是否存在; $file = @fopen($filename,"rb"); if(!$file) return 0; $bin = fread($file, 10); //只读15字节 各个不同文件类型,头信息不一样。可根据类型修改改其数值. fclose($file); $typelist=getTypeList(); //读文件头表 foreach ($typelist as $v) { $blen=strlen(pack("H*",$v[0])); //得到文件头标记字节数 4 5 10 12 字节等 $tbin=substr($bin,0,intval($blen)); //文件头 //strtolower — 将字符串转化为小写 $arraybin=unpack("H*",$tbin); //$arraybin 为什么值会在索引1???? $arraybin[0]为空???? if(strtolower($v[0])==strtolower($arraybin[1])) return $v[1]; } return $filetype; } //*** ****************************************************** function getTypeList() { return array(array("FFD8","jpg"), //jpg头部2个字节 array("89504E470D0A1A0A","png"), //png头部8个字节,只前4个字节也可,未检测 array("47494638","gif"),//gif 头部6个字节 前3个为标识符,后3个为版本? array("424D","bmp"),//bmp头部2个字节 ); } ?>
总是出错,如何导出皮肤和保存皮肤????工夫全白费了.. 总是出错,如何导出皮肤和保存皮肤????有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.Collections.Generic.KeyNotFoundException: 给定关键字不在字典中。 在 System.ThrowHelper.ThrowKeyNotFoundException() 在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) 在 BiSkinTool.BiKeyboardControl.SaveStyles(String skinDir, BiIniOPProxy proxy) 在 BiSkinTool.BiKeyboardControl.Save(String skinDir, BiIniOPProxy proxy) 在 BiSkinTool.MainForm.Save() 在 BiSkinTool.MainForm.保存ToolStripMenuItem_Click(Object sender, EventArgs e) 在 System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) 在 System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) 在 System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) 在 System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) 在 System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) 在 System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) 在 System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) 在 System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ScrollableControl.WndProc(Message& m) 在 System.Windows.Forms.ToolStrip.WndProc(Message& m) 在 System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** 已加载的程序集 ************** mscorlib 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5420 (Win7SP1.050727-5400) 基本代码: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll ---------------------------------------- BiSkinTool 程序集版本: 1.0.0.0 Win32 版本: 1.0.0.0 基本代码: file:///C:/Users/feng/Desktop/皮肤制作/BiSkinTool.exe ---------------------------------------- System.Windows.Forms 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5420 (Win7SP1.050727-5400) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5420 (Win7SP1.050727-5400) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5420 (Win7SP1.050727-5400) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Windows.Forms.resources 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll ---------------------------------------- System.Xml 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5420 (Win7SP1.050727-5400) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- ICSharpCode.SharpZipLib 程序集版本: 0.86.0.518 Win32 版本: 0.86.0.518 基本代码: file:///C:/Users/feng/Desktop/皮肤制作/ICSharpCode.SharpZipLib.DLL ---------------------------------------- mscorlib.resources 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5420 (Win7SP1.050727-5400) 基本代码: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll ---------------------------------------- Accessibility 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.4927 (NetFXspW7.050727-4900) 基本代码: file:///C:/Windows/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll ---------------------------------------- ************** JIT 调试 ************** 要启用实时(JIT)调试, 该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置 jitDebugging 值。 编译应用程序时还必须启用 调试。例如: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> 启用 JIT 调试后,任何无法处理的异常 都将被发送到在此计算机上注册的 JIT 调试器, 而不是由此对话框处理。
1 下一页