这是我自己写的一个文件上传函数,主要是做一些企业类网站的时候经常会用到上传图片,呵,我就写了这么一个函数,希望各位高手提出您们的宝贵意见!
- /************文件上传函数******************/
- /*
- *$formname Html上传表单名称
- *$allowtype_array 允许上传的文件类型数组
- *$allow_size 允许上传的文件最大大小,默认是1MB
- *$isRename 是否需要重命名被上传的文件
- */
- function upload_file($formname,$path,$allowtype_array,$allow_size='1048576',$isRename=true){
- if($_FILES[$formname]['tmp_name']=='' || $_FILES[$formname]['name']=='' || $_FILES[$formname]['size']==0){
- return false;
- }
- if(!file_exists('../uploadfiles/'.$path)){
- if(!mkdir('../uploadfiles/'.$path,0777)){
- WriteErrMsg('创建上传文件保存文件目录失败,请联系管理员检查目录权限');
- }
- }
- if($_FILES[$formname]['size']>$allow_size){
- WriteErrMsg('上传文件过大,请将上传文件限制在'.number_format($allow_size/1048576,'2','.','').'MB以内');
- }
- $file_name_array=explode('.',$_FILES[$formname]['name']);
- $file_type=strtolower($file_name_array[count($file_name_array)-1]);
- if(!in_array($file_type,$allowtype_array)){
- WriteErrMsg('上传文件类型错误,仅允许上传后缀名为 .'.implode(' .',$allowtype_array).'的文件');
- }
- $save_name=$isRename?randomname().'.'.$file_type:$_FILES[$formname]['name'];
- if(!move_uploaded_file($_FILES[$formname]['tmp_name'],'../uploadfiles/'.$path.'/'.$save_name)){
- WriteErrMsg('文件上传过程中发生错误,请重新上传');
- }
- switch($_FILES[$formname]['error']){
- case 0:
- return $save_name;
- break;
- case 1:
- WriteErrMsg('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');
- break;
- case 2:
- WriteErrMsg('上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值');
- break;
- case 3:
- WriteErrMsg('文件只有部分被上传');
- break;
- case 4:
- WriteErrMsg('没有文件被上传');
- break;
- default:
- WriteErrMsg('能出现这条错误提示,日子也该混到头了');
- break;
- }
- }
发表回复