文件上传完整方法(附实例)
时间:2008-08-13
来源:互联网
[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_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 (2 K) 下载次数:11
附件:

作者: csch 发布时间: 2008-08-13






作者: flyroc 发布时间: 2010-08-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28