Chinaunix

标题: [文件] 如何限制上传文件的类型?? [打印本页]

作者: xrsf    时间: 2004-09-13 22:11
标题: [文件] 如何限制上传文件的类型??
比如:
我想让用户只能上传图片(GIF/JPG),而不能传.zip之类的。

另外,在显示图片上,我并不知道用户传的是gif还是jpg,该怎样显示呢?

请高人贴出代码。谢谢~~~~~

[ 本帖最后由 HonestQiao 于 2005-12-19 10:05 编辑 ]
作者: seebi    时间: 2004-09-14 01:02
标题: 如何限制上传文件的类型??
$name="abc.gif";//GIF图
$tem=explode(".",$name);
if($tem[(count($tem)-1)]=="gif"
{
      echo "这是gif图";
}
思路大概是这样!
作者: seebi    时间: 2004-09-14 01:09
标题: 如何限制上传文件的类型??
$name="abcdef.gif";//GIF图
$tem=explode(".",$name);
if($tem[1]=="gif"
{
      echo "这是gif图";
}
思路大概是这样!
作者: Dummy    时间: 2004-09-14 09:14
标题: 如何限制上传文件的类型??
Use $_FILES['userfile']['type']
作者: xrsf    时间: 2004-09-14 14:13
标题: 如何限制上传文件的类型??
多谢 seebi   指点.......
作者: yhp050    时间: 2005-12-19 10:02
$_FILES['userfile']['type']
好像用不起来嘛
作者: HonestQiao    时间: 2005-12-19 10:06
var_export($_FILES);
作者: qingmedia    时间: 2005-12-19 15:34
原帖由 seebi 于 2004-9-14 01:02 发表
$name="abc.gif";//GIF图
$tem=explode(".",$name);
if($tem[(count($tem)-1)]=="gif")
{
      echo "这是gif图";
}
思路大概是这样!


我用的与这个差不多:

//取得允许上传的文件类型,并判断
    $allow_file = explode("|", "gif|jpg|png"); //允许上传的文件类型组

    $new_upload_file_ext = strtolower(end(explode(".", $_FILES['upload_file']['name']))); //取得被.隔开的最后字符串

    if (!in_array($new_upload_file_ext,$allow_file)){ //如果不在组类,提示处理
      exit("$new_upload_file_ext: 不允许上传");      
    }
作者: wildlily980    时间: 2005-12-19 17:33
用文件名后缀的方式看起来很不安全。
作者: qingmedia    时间: 2005-12-19 17:52
原帖由 wildlily980 于 2005-12-19 17:33 发表
用文件名后缀的方式看起来很不安全。


为什么呢?
作者: wildlily980    时间: 2005-12-19 19:05
如果我有一个文件hack.exe
我把它改成hack.jpg
是不是就可以通过这个程序检查?
作者: qingmedia    时间: 2005-12-19 19:28
原帖由 wildlily980 于 2005-12-19 19:05 发表
如果我有一个文件hack.exe
我把它改成hack.jpg
是不是就可以通过这个程序检查?


即便传上去又如何?能对谁造成威胁?
作者: phphp    时间: 2005-12-19 19:50
用mine类型吧.
作者: cloudchen    时间: 2005-12-20 09:47
mime+扩展名

上传到目录后,该目录不能被的所有文件不能被任何脚本或程序执行就可以了,你传无数个病毒也无所谓
作者: 宝贝的小猪    时间: 2005-12-20 13:59
可不可以用JS在客户端判断正确后再上传?
这样是不是会省点时间?
作者: HonestQiao    时间: 2005-12-23 22:26
原帖由 宝贝的小猪 于 2005-12-20 13:59 发表
可不可以用JS在客户端判断正确后再上传?
这样是不是会省点时间?



js只能判断后缀名。
作者: 撒哈拉里的鱼    时间: 2006-02-20 11:31
你建立一个这样的文件试试:
文件名test.jpg
内容为<script>alert(document.cookie)</script>
作者: sdet1234    时间: 2006-02-20 14:28
标题: 回复 11楼 wildlily980 的帖子
这样 if ($_FILES["image"]["type"]=="image/jpeg" OR $_FILES['image']['type']=="image/pjpeg" OR $_FILES['image']['type']=="image/gif" OR $_FILES['image']['type']=="image/x-png")
作者: 孤月侠    时间: 2007-01-10 15:03
原帖由 sdet1234 于 2006-2-20 14:28 发表
这样 if ($_FILES["image"]["type"]=="image/jpeg" OR $_FILES['image']['type']=="image/pjpeg" OR $_FILES['image']['type']=="image/gif" OR $_FILES['ima ...


这个在不同浏览器下是不同的,这一点要考虑到
作者: gaoyikun    时间: 2007-01-10 15:27
mime_content_type(文件名)




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2