//封装图片上传 |
function upload( $file , $allow = array ( 'gif' , 'png' , 'jpg' , 'jpeg' , 'bmp' )){ |
//定义错误字符串 |
$err_info = '' ; |
// 判断不是数组,直接退出 |
if (! is_array ( $file )){ |
return array (false, "当前上传的文件信息不正确!" ); |
exit ; |
} |
switch ( $file [ 'error' ]){ |
case 1: |
$err_info = "上传的文件超过了服务器允许的大小:" . ini_get ( 'upload_max_filesize' ); |
break ; |
case 2: |
$err_info = "上伟文件超过了浏览器允许的大小:" . ini_get ( 'MAX_FILE_SIZE' ); |
break ; |
case 3: |
$err_info = "文件只上传了一部分,请重新上传" ; |
break ; |
case 4: |
$err_info = "文件没有上传成功,请重新上传" ; |
break ; |
case 6: |
$err_info = "没有找到临时文件夹" ; |
break ; |
case 7: |
$err_info = "文件写入失败" ; |
break ; |
} |
//判断err_info |
if ( $err_info ){ |
//如果存在错误 |
return array (false, $err_info ); |
} |
// 判断文件类型 |
//取得文件类型 |
$extension = getExtension( $file [ 'name' ]); |
//echo $extension; |
//判断文件的后缀名是否存 |
if (! $extension ){ |
return array (false, '没有找到文件的后缀名!' ); |
} |
//当前文件是否允许上传 |
if (!in_array( $extension , $allow )){ |
return array (false, '请选择正确的文件类型,正确的类型有:' . explode ( ',' , $allow )); |
} |
|
//解决文件名乱码问题,使用重命名的 |
$filename = getRandomFileName(). '.' . $extension ; |
echo $filename ; |
|
//移动文件,从临时文件移动,目标文件 |
if (!move_uploaded_file( $file [ 'tmp_name' ],upload. $filename )){ |
//文件移动失败 把错误信息写入日志文件中 |
return array (false, '文件上传失败!' ); |
} |
//上传成功 |
return upload. $filename ; |
} |
|
//文件上传 取得后缀名 |
function getExtension( $file_name ){ |
//从点 开始截取后面的字符串 |
// return strchr($filename,'.'); |
//判断有没有后缀名 |
if ( strrpos ( $file_name , '.' )){ |
//从多少位开始截取这些数据,strrpos(最后一次出现的数字位置),然后截图点后面的数据,就是我们想要得到的后缀名 |
return substr ( $file_name , strrpos ( $file_name , '.' )+1); |
} else { |
return false; |
} |
} |
|
//文件上传重命名函数 |
function getRandomFileName(){ |
//获取时间+字符串 |
$fileName = '' ; |
$fileName .= date ( 'YmdHis' ); |
$str = 'abcdefghijklmnopqrstuvwxyz' ; |
for ( $i =0; $i <6; $i ++){ |
$fileName .= $str [mt_rand(0,25)]; |
} |
return $fileName ; |
} |
by: 发表于:2017-10-20 14:19:43 顶(0) | 踩(0) 回复
??
回复评论