-
PHP 文件上传的综合实例
添加时间:2013-7-11 点击量:PHP文件上传
1、upload.php
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>Add文件上传_www.jbxue.com</title>
<meta http-equiv=content-type content=text/html; charset=UTF-8>
</head>
<body>
<!--文件上传要重视:1、要有enctyp,2、method=post-->
<form enctype=multipart/form-data action=uploadProcess.php method=post >
<table>
<tr><td>请填写用户名</td><td><input type=text name=username></td></tr>
<tr><td>请简单介绍文件</td><td><textarea rows=7 cols=50 name=fileintro style=width:300px;></textarea></td></tr>
<tr><td>请上传你的文件</td><td><input type=file name=myfile></td></tr>
<tr><td colspan=2><input type=submit value=上传><td></tr>
</table>
</form>
</body>
</html>2、uploadProcess.php
<?php
/
文件上传 接管数据
by www.jbxue.com
/
¥username=¥_POST[username];
¥fileintro=¥_POST[fileintro];
//echo ¥username.¥fileintro;
//获取文件信息
/ echo <pre>;
print_r(¥_FILES);
echo </pre>;
/
//获取文件的大小
¥file_size=¥_FILES[myfile][size];
if(¥file_size>210241024){
echo <script type=text/javascript>window.alert(文件不克不及大于2M)</script>;
exit();
}
//获取文件类型
¥file_type=¥_FILES[myfile][type];
if(¥file_type!=image/jpeg && ¥file_type!=image/pjpeg){
echo 文件类型只能是 jpg 格局;
exit();
}
//断定上传是否OK
if(is_uploaded_file(¥_FILES[myfile][tmp_name])){
//获得上传的文件 转存到你的目次
¥upload_file=¥_FILES[myfile][tmp_name];
//防止覆盖题目,为每个用户建树一个文件夹
¥user_path=¥_SERVER[DOCUMENT_ROOT]./file/up/.¥username;
if(!file_exists(¥user_path)){
mkdir (¥user_path);
}
//¥move_to_file=¥user_path./.¥_FILES[myfile][name];
//防止用户上传用户名雷同的题目
¥file_true_name=¥_FILES[myfile][name];
¥move_to_file=¥user_path./.time().rand(1,1000).substr(¥file_true_name,strripos(¥file_true_name,.));
//echo ¥upload_file.¥move_to_file;
//中文要转码
if(move_uploaded_file(¥upload_file,iconv(utf-8,gb2312,¥move_to_file))){
echo ¥_FILES[myfile][name].上传成功;
}else{
echo 上传失败;
}
}else{
echo 上传失败;
}
?>3、封装:
<?php
/
文件上传类
by www.jbxue.com
/
class Upload{
public ¥upload_name; //上传文件名
public ¥upload_tmp_path; //上传文件保存到办事器的temp路径
public ¥file_size;
public ¥file_type;
public ¥file_save_path;
function __construct(){
¥this->upload_name=¥_FILES[myfile][name];
¥this->upload_tmp_path=¥_FILES[myfile][tmp_name];
¥this->file_size=¥_FILES[myfile][size];
¥this->file_type=¥_FILES[myfile][type];
¥this->allow_file_type = array(jpeg,jpg,png,gif,bmp,doc,zip,rar,txt,wps,xlsx,ppt);
¥this->file_save_path=¥_SERVER[DOCUMENT_ROOT]./file/up/;
}
public function upload_file(¥username){
//断定文件大小
if(¥this->file_size>210241024){
echo <script type=text/javascript>window.alert(文件不克不及大于2M)</script>;
exit();
}
//获取文件类型
/ if(¥this->file_type!=image/jpeg && ¥this->file_type!=image/pjpeg){
echo 文件类型只能是 jpg 格局;
exit();
}
/ //获取文件的扩大名
¥file_type=¥this->getFileExt(¥this->upload_name);
if(!in_array(¥file_type,¥this->allow_file_type)){
echo 上传文件类型格局错误;
exit();
}
//断定上传是否OK
if(is_uploaded_file(¥this->upload_tmp_path)){
//防止覆盖题目,为每个用户建树一个文件夹
¥user_path=¥this->file_save_path.¥username;
if(!file_exists(¥user_path)){
mkdir (¥user_path);
}
//¥move_to_file=¥user_path./.¥_FILES[myfile][name];
//防止用户上传用户名雷同的题目
//¥file_true_name=¥_FILES[myfile][name];
¥move_to_file=¥user_path./.time().rand(1,1000).substr(¥this->upload_name,strripos(¥this->upload_name,.));
//echo ¥upload_file.¥move_to_file;
//中文要转码
if(move_uploaded_file(¥this->upload_tmp_path,iconv(utf-8,gb2312,¥move_to_file))){
echo ¥this->upload_name.上传成功;
}else{
echo 上传失败;
}
}else{
echo 上传失败;
}
}
//获取文件的扩大名
public function getFileExt(¥filename){
¥fileExt=pathinfo(¥filename);
return ¥fileExt[extension];
}
}
?>
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》