php文件上传实例讲解
来源:互联网 发布:nginx zookeeper 负载 编辑:程序博客网 时间:2024/05/21 11:30
转自:http://hi.baidu.com/chesterphp/blog/item/c4eac48396289fab0df4d2ec.html
一:打开php配置文件:
file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir -- 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M
二:form标签enctype属性
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况, 这个编码格式是application/x-www-form-urlencoded,不能用于文件上传; 只有使用了multipart/form-data,才能完整的传递文件数据。
值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。 MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该
文件太大了的麻烦。
三:$_FILES系统函数
$_FILES['myFile']['name']客户端文件的原名称
$_FILES['myFile']['type']文件的MIME类型
$_FILES['myFile']['size']已上传文件的大小
$_FILES['myFile']['tmp_name']储存的临时文件名,一般为系统默认
$_FILES['myFile']['error']该文件上传到相关的错误代码
四:move_upload_file函数
上传后移动文件到目标位置的函数
move_uploaded_file(临时文件,目标位置);
五:is_uploaded_file函数
判断上传文件的类型 is_uploaded_file(MIME);
html页面:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>upload</title>
</head>
<body>
<h1>上传新文件</h1>
<form enctype="multipart/form-data" action="file.php" method=post>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
上传文件: <inputname="userfile"type="file">
<input type="submit" value="上传">
</form>
</body>
</html>
php页面:
<?php
$uploadfile ='./upload/'.$_FILES['userfile']['name'];//upload为上传到服务机器的文件夹
echo $uploadfile;
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
echo "OK!";
}
switch ($_FILES['userfile']['type'])
{
case "image/pjpeg":
$fileextname = "jpg";
break;
case "image/gif":
$fileextname = "gif";
break;
case "image/x-png":
$fileextname = "png";
break;
case "application/x-shockwave-flash":
$fileextname = "swf";
break;
case "text/plain":
$fileextname = "txt";
break;
case "application/msword":
$fileextname = "doc";
break;
case "application/x-zip-compressed":
$fileextname = "zip";
break;
}
echo $fileextname;
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))
{
print "File is valid, and was successfully uploaded. Here's some more debugging info:\n";
print_r($_FILES);
}
else
{
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
注意:上传到服务器的文件夹要事先建立好,不然报错“failed to open stream: No such file or directory”
file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir -- 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M
二:form标签enctype属性
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况, 这个编码格式是application/x-www-form-urlencoded,不能用于文件上传; 只有使用了multipart/form-data,才能完整的传递文件数据。
值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。 MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该
文件太大了的麻烦。
三:$_FILES系统函数
$_FILES['myFile']['name']客户端文件的原名称
$_FILES['myFile']['type']文件的MIME类型
$_FILES['myFile']['size']已上传文件的大小
$_FILES['myFile']['tmp_name']储存的临时文件名,一般为系统默认
$_FILES['myFile']['error']该文件上传到相关的错误代码
四:move_upload_file函数
上传后移动文件到目标位置的函数
move_uploaded_file(临时文件,目标位置);
五:is_uploaded_file函数
判断上传文件的类型 is_uploaded_file(MIME);
html页面:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>upload</title>
</head>
<body>
<h1>上传新文件</h1>
<form enctype="multipart/form-data" action="file.php" method=post>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
上传文件: <inputname="userfile"type="file">
<input type="submit" value="上传">
</form>
</body>
</html>
php页面:
<?php
$uploadfile ='./upload/'.$_FILES['userfile']['name'];//upload为上传到服务机器的文件夹
echo $uploadfile;
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
echo "OK!";
}
switch ($_FILES['userfile']['type'])
{
case "image/pjpeg":
$fileextname = "jpg";
break;
case "image/gif":
$fileextname = "gif";
break;
case "image/x-png":
$fileextname = "png";
break;
case "application/x-shockwave-flash":
$fileextname = "swf";
break;
case "text/plain":
$fileextname = "txt";
break;
case "application/msword":
$fileextname = "doc";
break;
case "application/x-zip-compressed":
$fileextname = "zip";
break;
}
echo $fileextname;
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))
{
print "File is valid, and was successfully uploaded. Here's some more debugging info:\n";
print_r($_FILES);
}
else
{
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
注意:上传到服务器的文件夹要事先建立好,不然报错“failed to open stream: No such file or directory”
- php文件上传实例讲解
- PHP上传 实例 讲解
- PHP文件上传实例
- PHP文件上传实例
- php多文件上传实例
- PHP文件上传实例详解
- PHP文件上传实例详解!!!
- PHP文件上传实例详解!!!
- PHP上传文件程序实例
- PHP上传文件简单实例
- 【代码】PHP 文件上传实例
- PHP文件上传实例详解!!!
- php文件上传代码实例
- PHP文件上传主要代码讲解
- [PHP实例] PHP多文件上传实现
- FTP上传文件类实例(PHP)
- php上传文件的简单实例
- 简单的php文件上传实例
- 软件是什么?
- VirtualBox、VMWare Workstation作为开发环境的一些比较
- Iphone开发中的动画效果实现分类代码
- 珍惜每一天,不虚度,不浪费
- QNX开发与PlayBook开发
- php文件上传实例讲解
- Android文件操作
- IIS7.0 配置 ASP.NET 2.0
- MyEclipse中修改默认JSP编辑器的方法.txt
- Linux操作系统的内存管理特性简介
- heap和stack有什么区别
- 关于一个Panel上鼠标不及时响应MouseLeave事件
- Flex中多线程的实现 (转)
- 安静的看了2天书