PHP上传类太多,这里提供一个简单的php文件上传,一个文件就可以搞定上传。
把下面代码另存为uploads.php
复制代码代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ?
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">??
<head>??
??? <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />??
??? <meta name="author" content="xyl" />??
??? <title>简易文件上传 - www.jbxue.com</title>??
</head>??
<style type="text/css">??
</style>??
<body>??
<form enctype="multipart/form-data" action="" method="post">??
请选择文件: <br>??
??? <input name="upload_file" type="file"><br>??
??? <input type="submit" value="上传文件">??
</form>??
<br />??
<br />??
<br />??
<br />??
<???
function file_list($dir,$pattern=""){??
??? $arr=array();??
??? $dir_handle=opendir($dir);??
??? if($dir_handle){??
??????? while(($file=readdir($dir_handle))!==false){??
??????????? if($file==='.' || $file==='..'){??
??????????????? continue;??
??????????? }??
??????????? $tmp=realpath($dir.'/'.$file);??
??????????? if(is_dir($tmp)){??
??????????????? $retArr=file_list($tmp,$pattern);??
??????????????? if(!empty($retArr)){??
??????????????????? $arr[]=$retArr;??
??????????????? }??
??????????? } else {??
??????????????? if($pattern==="" || preg_match($pattern,$tmp)){??
??????????????????? $arr[]=$tmp;??
??????????????? }??
??????????? }??
??????? }??
??????? closedir($dir_handle);??
??? }??
??? return $arr;??
}??
$d_root = $_SERVER['DOCUMENT_ROOT'];??
$store_dir = "$d_root/uploads/";// 上传文件的储存位置??
if (!is_dir($store_dir)) {??
??? mkdir($store_dir,0777,true);??
}??
$file_arr = file_list($store_dir);??
foreach ($file_arr as $v=>$k) {??
??? $d_root_no = strlen($d_root);??
??? $l = substr($k,$d_root_no);??
??? echo $v.'号文件下载地址为:? <a class="download_url" style="color:#01BCC8;text-decoration:none;font-size:16px;font-weight:bold;" href="'.$l.'">'.$_SERVER['SERVER_ADDR'].$l.'<a/><br />';??
}??
$upload_file=isset($_FILES['upload_file']['tmp_name'])?$_FILES['upload_file']['tmp_name']:'';??
$upload_file_name=isset($_FILES['upload_file']['name'])?$_FILES['upload_file']['name']:'';??
$upload_file_size=isset($_FILES['upload_file']['size'])?$_FILES['upload_file']['size']:'';??
if($upload_file){??
??? $file_size_max = 1000*1000*200;// 200M限制文件上传最大容量(bytes)??
??? if (!is_dir($store_dir)) { ?// www.jbxue.com
??????? mkdir($store_dir,0777,true);??
??? }??
??? $accept_overwrite = 1;//是否允许覆盖相同文件??
??? // 检查文件大小??
??? if ($upload_file_size > $file_size_max) {??
??????? echo "对不起,你的文件容量大于规定";??
??????? exit;??
??? }??
??? // 检查读写文件??
??? if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {??
??????? echo "存在相同文件名的文件";??
??????? exit;?
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">??
<head>??
??? <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />??
??? <meta name="author" content="xyl" />??
??? <title>简易文件上传 - www.jbxue.com</title>??
</head>??
<style type="text/css">??
</style>??
<body>??
<form enctype="multipart/form-data" action="" method="post">??
请选择文件: <br>??
??? <input name="upload_file" type="file"><br>??
??? <input type="submit" value="上传文件">??
</form>??
<br />??
<br />??
<br />??
<br />??
<???
function file_list($dir,$pattern=""){??
??? $arr=array();??
??? $dir_handle=opendir($dir);??
??? if($dir_handle){??
??????? while(($file=readdir($dir_handle))!==false){??
??????????? if($file==='.' || $file==='..'){??
??????????????? continue;??
??????????? }??
??????????? $tmp=realpath($dir.'/'.$file);??
??????????? if(is_dir($tmp)){??
??????????????? $retArr=file_list($tmp,$pattern);??
??????????????? if(!empty($retArr)){??
??????????????????? $arr[]=$retArr;??
??????????????? }??
??????????? } else {??
??????????????? if($pattern==="" || preg_match($pattern,$tmp)){??
??????????????????? $arr[]=$tmp;??
??????????????? }??
??????????? }??
??????? }??
??????? closedir($dir_handle);??
??? }??
??? return $arr;??
}??
$d_root = $_SERVER['DOCUMENT_ROOT'];??
$store_dir = "$d_root/uploads/";// 上传文件的储存位置??
if (!is_dir($store_dir)) {??
??? mkdir($store_dir,0777,true);??
}??
$file_arr = file_list($store_dir);??
foreach ($file_arr as $v=>$k) {??
??? $d_root_no = strlen($d_root);??
??? $l = substr($k,$d_root_no);??
??? echo $v.'号文件下载地址为:? <a class="download_url" style="color:#01BCC8;text-decoration:none;font-size:16px;font-weight:bold;" href="'.$l.'">'.$_SERVER['SERVER_ADDR'].$l.'<a/><br />';??
}??
$upload_file=isset($_FILES['upload_file']['tmp_name'])?$_FILES['upload_file']['tmp_name']:'';??
$upload_file_name=isset($_FILES['upload_file']['name'])?$_FILES['upload_file']['name']:'';??
$upload_file_size=isset($_FILES['upload_file']['size'])?$_FILES['upload_file']['size']:'';??
if($upload_file){??
??? $file_size_max = 1000*1000*200;// 200M限制文件上传最大容量(bytes)??
??? if (!is_dir($store_dir)) { ?// www.jbxue.com
??????? mkdir($store_dir,0777,true);??
??? }??
??? $accept_overwrite = 1;//是否允许覆盖相同文件??
??? // 检查文件大小??
??? if ($upload_file_size > $file_size_max) {??
??????? echo "对不起,你的文件容量大于规定";??
??????? exit;??
??? }??
??? // 检查读写文件??
??? if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {??
??????? echo "存在相同文件名的文件";??
??????? exit;?