心得体会
一:文件重命名不能有/\:*?....等字符
二:文件格式对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg
三:是讲字符串备份数据库
<html>
<title>文件上传</title>
<head>
</head>
<body>
<div style="width: 500px; text-align:left;">
<?php
//上传文件表单
if($_POST['submit'] !="yes")
{
//显示表单
?>
<form action="" method="POST" enctype="multipart/form-data" >
<input type="hidden" name="submit" value="yes" />
请选择您要上传的文件:<br/><br/>
(注意文件上传大小不要超过5MB,文件格式为一些常规格式):<br/><br/>
<input type="file" name="file" /><br/><br/>
<input type="submit" value="提交" />
</form>
<?php
}
//开始上传文件功能
if($_POST['submit']=="yes")
{
//由文件上传导致的错误,终止程序执行 ,重新上传
if ($_FILES['file']['error'] > 0)
{echo "错误代码 " . $_FILES['file']['error'].": ";}
//要求一:文件长度要大于0
try
{
if($_FILES['file']['size']==0)
{
$goodtogo=false;
throw new exception("对不起,您没有选择上传的文件.<br/>");
}
}
catch(exception $e)
{
echo $e->getmessage();
?>
<br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
<?php
return;
}
//要求二:上传文件大小限制5MB
try
{
if($_FILES['file']['size']>5000000)
{
$goodtogo=false;
throw new exception("对不起,您上传的文件大小为".intval($_FILES['file']['size']/1000)."KB。超过限制大小");
}
}
catch(exception $e)
{
echo $e->getmessage();
?>
<br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
<?php
return;
}
//要求三:允许上传的文件类型,需要是要修改。对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg
$allow_upload_type=array(
'image/pjpeg',
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'tif' => 'image/tiff',
'tif' => 'image/tiff',
'txt' => 'text/plain',
'xml' => 'text/xml',
'mp3' => 'audio/mpeg',
'mpeg' => 'video/mpeg',
'mov' => 'video/quicktime',
'zip' => 'application/zip',
'rar' => 'application/x-rar-compressed',
'sit' => 'application/x-stuffit',
'bin' => 'application/x-macbinary',
'exe' => 'application/x-msdownload',
'doc' => 'application/msword',
'rtf' => 'application/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
);
try
{
if(!in_array($_FILES['file']['type'] ,$allow_upload_type))
{
$goodtogo=false;
throw new exception("对不起,文件类型限制,你所上传文件类型".$_FILES['file']['type']."<br/>");
}
}catch (exception $e)
{
echo $e->getmessage();
?>
<br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
<?php
return;
}
//通过上传,显示上传文件信息
$strname= $_FILES['file']['name'];//文件重命名之前保留文件名以备存在数据库中
echo "<br/>您上传文件的名称: " . $_FILES['file']['name']."<br/>";
echo "<br/>您上传文件的类型: " . $_FILES['file']['type'] . "<br />";
echo "<br/>您上传文件的大小: " . ($_FILES['file']['size'] / 1024) . " Kb<br />";
echo "<br/>您上传文件保存在服务器上的显示名称: " . $_FILES['file']['tmp_name'] . "<br />";
//移动上传文件到uploads目录
if(file_exists($newname ))
{echo "<br/>您上传文件的已经在本地保存过";}
else
{
//文件以时间戳 重命名
date_default_timezone_set('PRC');//中国时区
$D=date("YmdHis");//时间戳
$filetype=substr(strrchr($_FILES['file']['name'],"."),1);//获取文件后缀名
$newname=$D.".".$filetype; //文件新名字
//echo "<br/>新文件名:".$newname;
move_uploaded_file($_FILES['file']['tmp_name'], "uploads/".$newname);//移动文件到指定文件夹uploads;
echo "<br/>上传文件本地保存路径:"."./uploads/".$newname;
}
//连接到数据库
$con = mysql_connect("localhost:3306","root","");
if (!$con)
{die('连接数据库失败: ' . mysql_error()); }
mysql_select_db("test", $con);
//添加数据
$strpath = "../uploads/".$newname;
$sql =
"INSERT INTO Files( name, time, path)
VALUES('".$strname."', '".$D."', '".$strpath."' )
";
$result=mysql_query($sql);
if($result)
{echo "<br/><br/>文件备份到数据库成功";}
else
{echo"<br/><br/>文件备份到数据库失败";}
mysql_close($con);
?>
<br/><a href="Javascript:history.back(-1)"><br/>文件上传成功,需要再次上传请点击这里<br/></a>
<?php
header('refresh:5; url=http:file_dir.php');
echo"<br/><br/>否则,页面将 5秒后 自动跳转到目录页面";
}
?>
</div>
</body>
</html>
一:文件重命名不能有/\:*?....等字符
二:文件格式对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg
三:是讲字符串备份数据库
<html>
<title>文件上传</title>
<head>
</head>
<body>
<div style="width: 500px; text-align:left;">
<?php
//上传文件表单
if($_POST['submit'] !="yes")
{
//显示表单
?>
<form action="" method="POST" enctype="multipart/form-data" >
<input type="hidden" name="submit" value="yes" />
请选择您要上传的文件:<br/><br/>
(注意文件上传大小不要超过5MB,文件格式为一些常规格式):<br/><br/>
<input type="file" name="file" /><br/><br/>
<input type="submit" value="提交" />
</form>
<?php
}
//开始上传文件功能
if($_POST['submit']=="yes")
{
//由文件上传导致的错误,终止程序执行 ,重新上传
if ($_FILES['file']['error'] > 0)
{echo "错误代码 " . $_FILES['file']['error'].": ";}
//要求一:文件长度要大于0
try
{
if($_FILES['file']['size']==0)
{
$goodtogo=false;
throw new exception("对不起,您没有选择上传的文件.<br/>");
}
}
catch(exception $e)
{
echo $e->getmessage();
?>
<br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
<?php
return;
}
//要求二:上传文件大小限制5MB
try
{
if($_FILES['file']['size']>5000000)
{
$goodtogo=false;
throw new exception("对不起,您上传的文件大小为".intval($_FILES['file']['size']/1000)."KB。超过限制大小");
}
}
catch(exception $e)
{
echo $e->getmessage();
?>
<br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
<?php
return;
}
//要求三:允许上传的文件类型,需要是要修改。对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg
$allow_upload_type=array(
'image/pjpeg',
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'tif' => 'image/tiff',
'tif' => 'image/tiff',
'txt' => 'text/plain',
'xml' => 'text/xml',
'mp3' => 'audio/mpeg',
'mpeg' => 'video/mpeg',
'mov' => 'video/quicktime',
'zip' => 'application/zip',
'rar' => 'application/x-rar-compressed',
'sit' => 'application/x-stuffit',
'bin' => 'application/x-macbinary',
'exe' => 'application/x-msdownload',
'doc' => 'application/msword',
'rtf' => 'application/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
);
try
{
if(!in_array($_FILES['file']['type'] ,$allow_upload_type))
{
$goodtogo=false;
throw new exception("对不起,文件类型限制,你所上传文件类型".$_FILES['file']['type']."<br/>");
}
}catch (exception $e)
{
echo $e->getmessage();
?>
<br/><a href="Javascript:history.back(-1)"><br/>重新上传<br/><br/></a>
<?php
return;
}
//通过上传,显示上传文件信息
$strname= $_FILES['file']['name'];//文件重命名之前保留文件名以备存在数据库中
echo "<br/>您上传文件的名称: " . $_FILES['file']['name']."<br/>";
echo "<br/>您上传文件的类型: " . $_FILES['file']['type'] . "<br />";
echo "<br/>您上传文件的大小: " . ($_FILES['file']['size'] / 1024) . " Kb<br />";
echo "<br/>您上传文件保存在服务器上的显示名称: " . $_FILES['file']['tmp_name'] . "<br />";
//移动上传文件到uploads目录
if(file_exists($newname ))
{echo "<br/>您上传文件的已经在本地保存过";}
else
{
//文件以时间戳 重命名
date_default_timezone_set('PRC');//中国时区
$D=date("YmdHis");//时间戳
$filetype=substr(strrchr($_FILES['file']['name'],"."),1);//获取文件后缀名
$newname=$D.".".$filetype; //文件新名字
//echo "<br/>新文件名:".$newname;
move_uploaded_file($_FILES['file']['tmp_name'], "uploads/".$newname);//移动文件到指定文件夹uploads;
echo "<br/>上传文件本地保存路径:"."./uploads/".$newname;
}
//连接到数据库
$con = mysql_connect("localhost:3306","root","");
if (!$con)
{die('连接数据库失败: ' . mysql_error()); }
mysql_select_db("test", $con);
//添加数据
$strpath = "../uploads/".$newname;
$sql =
"INSERT INTO Files( name, time, path)
VALUES('".$strname."', '".$D."', '".$strpath."' )
";
$result=mysql_query($sql);
if($result)
{echo "<br/><br/>文件备份到数据库成功";}
else
{echo"<br/><br/>文件备份到数据库失败";}
mysql_close($con);
?>
<br/><a href="Javascript:history.back(-1)"><br/>文件上传成功,需要再次上传请点击这里<br/></a>
<?php
header('refresh:5; url=http:file_dir.php');
echo"<br/><br/>否则,页面将 5秒后 自动跳转到目录页面";
}
?>
</div>
</body>
</html>