在我们的系统中,不免要上传图片,视频等文件,在上传中,需要做的一些判断,文件大小等方面。
注意:
在php.ini 中的post_max_size,upload_max_filesize默认为2M,在上传视频的时候,需要修改下,可以自行设置。
另外如果启用了内存限制,那么该值应当小于memory_limit选项的值。
在上传视频的时候,可以会需要花费些时间,当超过一定的时间,会报脚本执行超过30秒的错误,这是因为在php.ini配置文件中max_execution_time配置选项在作怪,其表示每个脚本最大允许执行时间(秒),0 表示没有限制。你可以适当调整max_execution_time的值,不推荐设定为0。
前台页面:html
1 <form enctype="multipart/form-data" action='text.php' method="post"> 2 <input type="file" name="upfile"> 3 4 <input type="submit" value='上传文件'> 5 </form>
后台页面:php 处理
1 <script src="./js/jquery2.0.3.min.js"></script> 2 <?php 3 var_dump($_FILES); 4 //$_FILES['upfile']['tmp_name'] 5 //var_dump($_POST); 6 /*$size = getimagesize($_FILES['upfile']['tmp_name']); 7 $width = $size[0]; 8 $height = $size[1];*/ 9 //if($width>165 || $height>216){ 10 // echo "图片长或宽超出限制"; 11 // exit; 12 //} 13 /*if($_FILES['upfile']['size']>20*1024*1024){ 14 echo "图片过大"; 15 }*/ 16 include_once 'common/util.php'; 17 getImgW_H($_FILES['upfile'],10,2016,40,"apk");
3.common文件下 自己写的函数:util.php
/** * @param $file_tmpname * 限制上传文件 的 宽高,大小,后缀名 * $file = $_files['upfile'],$w 最大宽度,$h 最大高度,$size 最大文件 大小(单位为kb),$type 后缀名 */ function getImgW_H($file,$w,$h,$size,$type){ $imgFileName = explode(".",$file['name']); $imgExt = $imgFileName[count($imgFileName)-1]; if(!in_array($imgExt,explode(',',$type))){ ?> <script type="text/javascript"> alert("请输入后缀名为<?php echo $type; ?>的文件"); window.history.go(-1); </script> <?php exit; } if(!empty($w)&&!empty($h)){ $s = getimagesize($file['tmp_name']); $width = $s[0]; $height = $s[1]; if($width>$w || $height>$h){ ?> <script type="text/javascript"> alert("图片长或宽超出限制,宽<?php echo $w; ?>,高<?php echo $h; ?>"); window.history.go(-1); </script> <?php exit; } } if($file['size']>$size*1024){ ?> <script type="text/javascript"> alert("图片过大,不大于<?php echo $size; ?>kb"); window.history.go(-1); </script> <?php exit; } }