文件上传如何改成只允许图片上传?

jx633 2007-08-03 09:40:37
<form enctype="multipart/form-date" action="_url_" method="post">
<input type="hidden" name="max_file_size" value="30000">
上传文件:<input name="userfile" type="file">
<input type="submit" value="提交">

这段文件上传的如何改成只允许上传图片的呢?
支持jpg.gif.bmp三种格式的
...全文
492 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
learsu 2007-08-10
  • 打赏
  • 举报
回复
单纯用客户端不好吧,如果我禁用javascript这种验证就没用了。还要加上服务端验证。食尸鬼的服务端验证不错。
jxdyzwh 2007-08-10
  • 打赏
  • 举报
回复
通过javascript来实现
if (document.form1.userfile.value !="")
{
var a=GetFileExt(document.form1.userfile);
if (a!="jpg" && a!="gif" && a!="bmp" && a!="JPG" && a!="GIF" && a!="BMP")
{
alert("图片的格式有误!");
return false;
}
}
//获取其文件名的后缀
function GetFileExt(o)
{
return o.value.replace(/.+\./,"");
}
Henry.6 2007-08-10
  • 打赏
  • 举报
回复
mark
liguang0717 2007-08-06
  • 打赏
  • 举报
回复
if(!($in['Photo']['type'] =="image/pjpeg" || $in['Photo']['type'] == "image/gif"
|| $in['Photo']['type'] == "image/x-png"))
{
new Error('系统只允许上传GIF、JPG、PNG格式的图片','图片格式错误','', $tpl);
}
dave2024 2007-08-06
  • 打赏
  • 举报
回复
<form enctype="multipart/form-date" action="_url_" method="post" onSubmit="javscript:return check_upFile();">
<input type="hidden" name="max_file_size" value="30000">
上传文件:<input name="userfile" type="file">
<input type="submit" value="提交">
dave2024 2007-08-06
  • 打赏
  • 举报
回复
function check_upFile()
{
var file_type =[".gif",".jpg",".jpeg",".bmp",".png",".pdf",".doc",".xls",".zip",".rar"]
var upload_file = document.getElementById("userfile").value;
var if_return = true;
if (upload_file == ""){
alert(" Please choose a file to upload");
return false;
}
for(i=0;i<file_type.length;i++){
if(upload_file.indexOf(file_type[i]) != -1){
if_return = false;
break;
}
}
if(if_return){
alert(" Please upload .gif/.jpg/.jpeg/.bmp/.png/.pdf/.doc/.xls/.zip/.rar files only");
document.getElementById("userfile").value="";
document.getElementById("userfile").focus();
return false;
}
}
wasuka 2007-08-06
  • 打赏
  • 举报
回复
楼上的说反了吧?严格检查后缀和getimagesize()、mime检查哪个危险?
aileenguan 2007-08-06
  • 打赏
  • 举报
回复
回复人:mrshelly(Shelly) ( 两星(中级)) 信誉:100 2007-8-3 9:46:41 得分:0
?

1 用 getimagesize 过滤一下文件类型.
2 再用 mime 去滤一下图片类型.

这个做法是危险的,有漏洞,必须严格检查后缀。
wasuka 2007-08-06
  • 打赏
  • 举报
回复
getimagesize()
bcc1o 2007-08-06
  • 打赏
  • 举报
回复
单纯的检验后缀名好象没用吧,如果我把被的格式的文件改成jpg的后缀文件也可以上传啊,这个怎么屏蔽呢?
xuenping 2007-08-03
  • 打赏
  • 举报
回复
eregi('\.(gif|jpg|bmp|jpeg)',$imgname)
mrshelly 2007-08-03
  • 打赏
  • 举报
回复
1 用 getimagesize 过滤一下文件类型.
2 再用 mime 去滤一下图片类型.
sunday_bj 2007-08-03
  • 打赏
  • 举报
回复
用正则把文件名的后缀过虑一下就ok了

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧