2017年8月23日第二篇

文件上传具体代码

HTML代码:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传页面</title>
</head>
<body>
<form action="shangchuan.php" enctype="multipart/form-data" method="post">
<!-- 如果要显示用户上传文件的大小,可以写一个隐藏控件-->
<!-- 这里我们限制上传的文件最大为5M-->
<p>
<input name="MAX_FILE_SIZE" type="hidden" value="5242880"/>
</p>
<p>请选择您要上传的文件:</p>
<p>
<input type="file" name="myFile" id="myFile"/><
/p>
<p>
<input type="submit" value="上传文件"/>
</p>
</form>
</body>
</html>
PHP代码:

<!--只允许用户上传格式为gifpngjpg图片文件-->
<?php
$allowType = array("docx","doc");
//创建一个数组,里面存储允许上传的文件类型
$size = $_POST['MAX_FILE_SIZE'];
//设置允许上传的文件大小为5MB
$path = "./uploads";
//设置上传来的文件最终被保存到上面路径下面 i
f($_FILES['myFile']['error']>0)
{
echo "上传文件失败,遇到错误";
switch($_FILES['myFile']['error'])
{
case 1:
die("上传文件的大小超出了upload_max_filesize的限制");
case 2:
die("上传文件的大小超出了HTML表单里面的约定值");
case 3:
die("文件只有部分被上传");
case 4:
die("没有上传任何文件");
default:
die("未知的错误");
}
}
// 下一步需要将文件名和扩展名分隔开
$i = explode('.',$_FILES['myFile']['name']);
//将文件名分割为一个数组 例如:test.txt分割为array('test','txt')
$typeName = array_pop($i);
//提取出文件的后缀名 例如:$typeName = txt
if(!in_array($typeName,$allowType))/
/判断取出来的后缀名是否是允许的后缀名类型
{
die("这个文件的后缀名为{$typeName}
不是允许的文件类型"); }
if($_FILES['myFile']['size']>$size)/
/判断上传的文件是否超出规定的大小
{
die("文件超出了允许上传的文件大小"); }
// 为了上传相同的文件不被覆盖,需要做一些处理
$fileNme = date("YmdHis").rand(100,999).".".
$typeName;
//为了同名文件不被覆盖,需要上传到系统的文件名不能相同
if(is_uploaded_file($_FILES['myFile']['tmp_name']))
//判断是否为上传而来的文件 {
//因为文件刚被上传时是被存储在临时目录里面,需要移动到指定的目录
//判断文件是否能够被移动到指定的目录
if(move_uploaded_file($_FILES['myFile']['tmp_name'],$path.'/'.$fileNme))
{
echo "文件上传成功";
}
else{
die("不能将文件移动到指定的目录");
}
}
else{
die("上传文件出错");
}
?>

posted on 2017-08-23 19:49  liuyulian  阅读(97)  评论(0)    收藏  举报

导航