[php]
/*
* $file_input 上传文件选择框的名称
* $store_uploaded_files_directory 存储上传文件的目录
* $arr_extensions 可以上传的文件的后缀名(此参数为数组)
* $max_size 定义可以上传文件的大小,单位为字节
*/
function upload(
$file_input,
$store_uploaded_files_directory = '',
$arr_extensions = '',
$max_size = 2000000
)
{
$file_name = $_FILES[$file_input]['name'];
if(empty($file_name)) return "请选择上传文件!";
else
{
$file_tmp_name = $_FILES[$file_input]['tmp_name'];
$file_type = $_FILES[$file_input]['type'];
$file_size = $_FILES[$file_input]['size'];
/*
* $_FILES[$file_input]['error']意义:
* 0表示上传成功 1表示超过了upload_max_filesize设定的值
* 2表示超过了HTML中MAX_FILE_SIZE设定的值 3表示文件只有部分被上传
* 4表示没有文件被上传
*/
$file_error = $_FILES[$file_input]['error'];
$file_ext = substr(strrchr($file_name,"."),1); //获取上传文件的扩展名
$uploaded_full_path = '';
/*
* 增加容错性,当$store_uploaded_files_directory
* 没有带反斜框时,自动加上反斜杠
*/
if(strrpos($store_uploaded_files_directory,"/") + 1 == strlen($store_uploaded_files_directory))
{
$uploaded_full_path = $store_uploaded_files_directory . $file_name;
}
else
{
$uploaded_full_path = $store_uploaded_files_directory . '/' . $file_name;
}
/*
* 调用该函数时若没有定义可上传文件扩展名数组,则扩展名数组默认为以下数组
*/
if(empty($arr_extensions))
$arr_extensions = array('txt','doc','rar','zip','chm','ppt','jpg','mp3','wma');
if(!in_array(strtolower($file_ext),$arr_extensions))
return "只能上传以下文件类型:" . join(",",$arr_extensions);
else if(file_exists($uploaded_full_path))
return "同名文件已存在!";
else if($file_size > $max_size)
{
$max_size_m = $max_size / 1000000;
return "上传文件过大,最大只能上传" . $max_size_m . "M";
}
else if($file_error == 1)
{
return "上传文件超过了upload_max_filesize设定的大小!";
}
else if(is_uploaded_file($file_tmp_name))
{
if(move_uploaded_file($file_tmp_name,$uploaded_full_path))
{
return "文件上传成功!";
}
else return "文件复制失败!";
}
}
}
[/php]
下载:实例file_upload.rar
/*
* $file_input 上传文件选择框的名称
* $store_uploaded_files_directory 存储上传文件的目录
* $arr_extensions 可以上传的文件的后缀名(此参数为数组)
* $max_size 定义可以上传文件的大小,单位为字节
*/
function upload(
$file_input,
$store_uploaded_files_directory = '',
$arr_extensions = '',
$max_size = 2000000
)
{
$file_name = $_FILES[$file_input]['name'];
if(empty($file_name)) return "请选择上传文件!";
else
{
$file_tmp_name = $_FILES[$file_input]['tmp_name'];
$file_type = $_FILES[$file_input]['type'];
$file_size = $_FILES[$file_input]['size'];
/*
* $_FILES[$file_input]['error']意义:
* 0表示上传成功 1表示超过了upload_max_filesize设定的值
* 2表示超过了HTML中MAX_FILE_SIZE设定的值 3表示文件只有部分被上传
* 4表示没有文件被上传
*/
$file_error = $_FILES[$file_input]['error'];
$file_ext = substr(strrchr($file_name,"."),1); //获取上传文件的扩展名
$uploaded_full_path = '';
/*
* 增加容错性,当$store_uploaded_files_directory
* 没有带反斜框时,自动加上反斜杠
*/
if(strrpos($store_uploaded_files_directory,"/") + 1 == strlen($store_uploaded_files_directory))
{
$uploaded_full_path = $store_uploaded_files_directory . $file_name;
}
else
{
$uploaded_full_path = $store_uploaded_files_directory . '/' . $file_name;
}
/*
* 调用该函数时若没有定义可上传文件扩展名数组,则扩展名数组默认为以下数组
*/
if(empty($arr_extensions))
$arr_extensions = array('txt','doc','rar','zip','chm','ppt','jpg','mp3','wma');
if(!in_array(strtolower($file_ext),$arr_extensions))
return "只能上传以下文件类型:" . join(",",$arr_extensions);
else if(file_exists($uploaded_full_path))
return "同名文件已存在!";
else if($file_size > $max_size)
{
$max_size_m = $max_size / 1000000;
return "上传文件过大,最大只能上传" . $max_size_m . "M";
}
else if($file_error == 1)
{
return "上传文件超过了upload_max_filesize设定的大小!";
}
else if(is_uploaded_file($file_tmp_name))
{
if(move_uploaded_file($file_tmp_name,$uploaded_full_path))
{
return "文件上传成功!";
}
else return "文件复制失败!";
}
}
}
[/php]
下载:实例file_upload.rar
