PHP之文件上传
Posted 少年强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP之文件上传相关的知识,希望对你有一定的参考价值。
注意事项:
1、表单中enctype="multipart/form-data"是用于设置表单的MIME编码。
2、全局变量 $_FILES的应用
$_FILES[\'file\'][\'name\'] 为上传文件的原文件名
$_FILES[\'file\'][\'type\'] 为上传文件的 MIME 类型
$_FILES[\'file\'][\'size\'] 已上传文件的大小,单位为字节
$_FILES[\'file\'][\'tmp_name\'] 文件被上传后在服务端储存的临时文件名()
$_FILES[\'file\'][\'error\'] 文件上传的错误代码
更详细的请参考:http://www.cnblogs.com/lichenwei/p/3879566.html
上传文件的图形界面:
<html>
<head><title>实现一个简单的文件上传功能</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/></head>
<body>
<form enctype="multipart/form-data" action="file_upload_code(8_04).php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"/>
上传文件:<input type="file" name="user_file"><br/>
<input type="submit" value="上传"/>
</form>
</body>
</html>
上传的后台代码(file_upload_code(8_04).php):
<?php
header("content-type:text/html;charset=utf-8");
//限制不能上传text格式的图片
if($_FILES[\'user_file\'][\'type\']==\'text/plain\')
{
echo \'<script>alert("不能上传text格式的文件");histroy.back();</script>\';
exit();
}
//限制上传文件的大小
define(\'MAX_SIZE\',2000000);//定义一个常量,固定上传文件的大小
if($_FILES[\'user_file\'][\'size\']>MAX_SIZE)
{
echo "<script>alert(\'不好意思,只能上传2M以内的文件\');histroy.back();</script>";
}
//不同浏览器,格式不同(比如谷歌里ico文件的类型是image/x-icon,而IE里ico文件的类型是image/png),这里判断类型是否是数组里的一种
$file_type=array(\'image/png\',\'image/x-icon\');
if(is_array($file_type))//检测是不是一个数组
{
if(!in_array($_FILES[\'user_file\'][\'type\'],$file_type))
{
echo \'<script>alert("只允许上传png或者ico格式的文件");histroy.back();</script>\';
exit;
}
}
if($_FILES[\'user_file\'][\'error\']>0);
{
switch($_FILES[\'user_file\'][\'error\'])
{
case 1:
echo \'<script>alert("上传的文件大小超过了约定值");history.back();</script>\';
break;
case 2:
echo \'<script>alert("上载文件大小超出了 HTML 表单的 MAX_FILE_SIZE 元素所指定的最大值。");history.back();</script>\';
break;
case 3:
echo \'<script>alert("只有部分文件上传");history.back();</script>\';
break;
case 4:
echo \'<script>alert("没有任何文件上传");history.back();</script>\';
break;
}
}
/*dirname:返回路径中的目录部分
*/
//创建一个常量,固定上传的位置
define("url",dirname(__FILE__).\'\\you\');
//判断目录是否存在
if(!is_dir(url))
{
mkdir(url,0700);//0700最大权限,如果没有就创建目录
}
if(is_uploaded_file($_FILES[\'user_file\'][\'tmp_name\']))
{
if(!move_uploaded_file($_FILES[\'user_file\'][\'tmp_name\'],url.\'\\\\\'.$_FILES[\'user_file\'][\'name\']))
{
echo $_FILES[\'user_file\'][\'name\']."上传失败!";
}
else
{
echo $_FILES[\'user_file\'][\'name\']."上传成功!";
}
}else
{
echo "找不到上传的文件";
}
?>
有错请指出,不懂的请在下方留言!
以上是关于PHP之文件上传的主要内容,如果未能解决你的问题,请参考以下文章