在上传文件之前,文件名通常用于确定文件类型是否合法,但很难检测文件的大小,除非它是本地的或使用控件。使用js可以轻松解决单词问题。JS可以在上传图片前判断大小。这可以通过javascript来实现,效果是.//允许上传图片文件大小的具体代码如下。
复制代码代码如下:脚本语言=JavaScript var ImgObj=new Image();//建立一个图像对象var AllImgExt=' .jpg| .jpeg| .gif| .bmp| .png|'//全部图片格式类型var FileObj、ImgFileSize、ImgWidth、ImgHeight、FileExt、ErrMsg、FileMsg、HasCheked、IsImg//全局变量图片相关属性//以下为限制变量var AllowExt=' .jpg| .gif| .文档|。txt|' //允许上传的文件类型?为无限制每个扩展名后边要加一个'|' 小写字母表示//var AllowExt=0 var allowgfilesize=70;//允许上传图片文件的大小0为无限制单位:KB var AllowImgWidth=500//允许上传的图片的宽度?为无限制单位:px(像素)var allowmgheight=500//允许上传的图片的高度?为无限制单位:px(像素)HasChecked=false function CheckProperty(obj)//检测图像属性{ FileObj=objif(ErrMsg!='') //检测是否为正确的图像文件返回出错信息并重置{ ShowMsg(ErrMsg,false);返回false//返回} if(ImgObj.readyState!='完成')//如果图像是未加载完成进行循环检测{ setTimeout(' CheckProperty(FileObj)',500);返回false} ImgFileSize=数学。圆形(imgobj。file size/1024 * 100)/100;//取得图片文件的大小ImgWidth=ImgObj.width //取得图片的宽度ImgObj.height//取得图片的高度文件消息='n图片大小: ' IMgwidth ' * ' IMgheight ' px ';文件消息=文件消息n图片文件大小: ' ImgFileSize ' Kb文件消息=文件消息n图片文件扩展名: ' FileExtif(allowwimgwidth!=0 allowimgwidthimgwidth)ErrMsg=ErrMsg ' n图片宽度超过限制。请上传宽度小于AllowImgWidth 'px的文件,当前图片宽度为ImgWidth ' pxif(allowmgheight!=0 allowimgheightimgheight)ErrMsg=ErrMsg ' n图片高度超过限制。请上传高度小于AllowImgHeight ' px的文件,当前图片高度为ImgHeight ' pxif(allowimgfilesize!=0 allowimgfilesizeimgfilesize)ErrMsg=ErrMsg ' n图片文件大小超过限制。请上传小于AllowImgFileSize ' KB的文件,当前文件大小为ImgFileSize ' KBif(ErrMsg!='') ShowMsg(ErrMsg,false);else ShowMsg(FileMsg,true);} imgobj。one rror=function(){ ErrMsg=' n图片格式不正确或者图片已损坏!'}函数ShowMsg(msg,tf) //显示提示信息tf=真显示文件信息tf=false显示错误信息味精信息内容{ msg=msg . replace(' n ',' Li ');msg=msg.replace(/n/gi,' Li ');if(!TF){文档。全部。上传按钮。disabled=true文件对象。outHTMl=文件obj。outHTMlmsglist . innerhtml=msgHasChecked=false } else { document。全部。上传按钮。disabled=falseif(IsImg)previewmg。innerhtml=' img src=' imgobj。src ' width=' 60 ' height=' 60 ' else preview mg。innerhtml='非图片文件;msglist . innerhtml=msgHasChecked=true } }函数check ext(obj){ ErrMSg=' ';FileMsg=FileObj=objIsImg=假;HasChecked=false“previewimg . innerhtml=”预览区;if(obj.value==' ')返回false“msglist . innerhtml=”文件信息处理中.文件。全部。上传按钮。disabled=true文件扩展名=obj。价值。substr(obj。价值。LastIndexof('。'))).toLowerCase();if(AllowExt!=0allowext。indexof(文件扩展名“|”===-1)//判断文件类型是否允许上传{ ErrMsg='n该文件类型不允许上传。
请上传' AllowExt '类型的文件,当前文件类型为FileExtShowMsg(ErrMsg,false);返回false} if(alligext。indexof(FileExt ' |)!=-1) //如果图片文件,则进行图片信息处理{ IsImg=真;imgobj。src=obj。价值;检查属性(obj);返回false} else { FileMsg='n文件扩展名: ' FileExtShowMsg(FileMsg,true);} }函数switch up type(TF){ if(TF)str=' input type=' file ' name=' file 1 ' onchange=' CheckExt(this)' style=' width :180 px;'else str=' input type=' text ' name=' file 1 ' on bulr=' CheckExt(this)' style=' width :180 px;文件。全部。文件1。OuthHTML=str文件。全部。上传按钮。disabled=truemsglist . innerHTMl=}/script form enctype=' multipart/form-data '方法='提交时开机自检'='返回已检查;fieldset style=' width: 372高度: 60;padd :2 pxlegendfont color=' # ff 0000 '图片来源/字体/图例输入类型='radio '名称='radio1 '选中onclick=' SwitChupType(true);'本地输入类型=' radio ' name=' radio 1 ' onclick=' SwitChupType(false);'远程:输入类型=' file ' name=' file 1 ' onchange=' CheckExt(this)' style=' width :180 px;输入类型='submit' id='UploadButton '值='开始上传禁用div style='边框:1实心# 808080;背景: # E0E 0;宽度100%;高度:20 pxcolor : # 606060 padd :5 px表格边框='0'trtd宽度='60' id='PreviewImg '预览区/tdtd id=' MSglist ' valign=' top '/TD/tr/table/div/字段集/表单完注意读者可以直接复制以上代码,另存为超文本标记语言文件里,预览射流研究…限制上传图片大小效果