我们经常会遇到需要单独在一个php文件里上传文件到服务器,并返回文件路径以及文件名。
那么今天就给大家带来 php上传文件的单独源码
不多说上代码,更多功能可自行开发
<?php
header("Content-Type:text/html; charset=gb2312");
if(isset($_POST['submit']))
{
$upfiles = new Upload();
$upfiles->upload_file();
}
class Upload
{
/*作者:mckee 来自:www.phpddt.com*/
public $upload_name; //上传文件名
public $upload_tmp_name; //上传临时文件名
public $upload_final_name; //上传文件的最终文件名
public $upload_target_dir; //文件被上传到的目标目录
public $upload_target_path; //文件被上传到的最终路径
public $upload_filetype ; //上传文件类型
public $allow_uploadedfile_type; //允许的上传文件类型
public $upload_file_size; //上传文件的大小
public $allow_uploaded_maxsize=10000000; //允许上传文件的最大值
//构造函数
public function __construct()
{
$this->upload_name = $_FILES["file"]["name"]; //取得上传文件名
$this->upload_filetype = $_FILES["file"]["type"];
$this->upload_tmp_name = $_FILES["file"]["tmp_name"];
$this->allow_uploadedfile_type = array('jpeg','jpg','png','gif','bmp','doc','zip','rar','txt','wps');
$this->upload_file_size = $_FILES["file"]["size"];
//定义上传路径,现在的上传和upload.php在同级
$this->upload_target_dir="./";
}
//文件上传
public function upload_file()
{
$upload_filetype = $this->getFileExt($this->upload_name);
//对上传文件类型的限制,改成if(1)则没有限制
if(1) //in_array($upload_filetype,$this->allow_uploadedfile_type))
{
if($this->upload_file_size < $this->allow_uploaded_maxsize)
{
if(!is_dir($this->upload_target_dir))
{
mkdir($this->upload_target_dir);
chmod($this->upload_target_dir,0777);
}
//定义服务器存储时的文件名(默认和上传的原始文件同名)
$this->upload_final_name = $this->upload_name; //date("YmdHis").rand(0,100).'.'.$upload_filetype;
$this->upload_target_path = $this->upload_target_dir."/".$this->upload_final_name;
if(!move_uploaded_file($this->upload_tmp_name,$this->upload_target_path))
echo "<font color=red>文件上传失败!</font>";
else
echo "<font color=blue>文件上传成功!</font>";
}
else
{
echo("<font color=red>文件太大,上传失败!</font>");
}
}
else
{
echo("不支持此文件类型,请重新选择");
}
}
/**
*获取文件扩展名
*@param String $filename 要获取文件名的文件
*/
public function getFileExt($filename){
$info = pathinfo($filename);
return $info["extension"];
}
}
?>
<form enctype="multipart/form-data" method="POST" action="">
<input type="file" name="file"><input type="submit" name="submit" value="上传">
</form>