通过 PHP,可以把文件上传到服务器。里面加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件。
为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的网站源码,全部救变成他的了,直接打包看你的代码。所以一定要控制上传的目录与文件类型,一般只可以上传图片。
下面就分别介绍下php上传文件、php上传图片的方法与代码。
创建一个文件上传表单
允许用户从表单上传文件是非常有用的。
请看下面这个供上传文件的 HTML 表单:
请留意如下有关此表单的信息:
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
创建上传脚本
"upload_file.php" 文件含有供上传文件的代码:
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。
上传限制
在这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:
注释:对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg。
保存被上传的文件
上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本。
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
上面的脚本检测了是否已存在此文件,如果不存在,则把文件拷贝到指定的文件夹。
注释:这个例子把文件保存到了名为 "upload" 的新文件夹。
为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的网站源码,全部救变成他的了,直接打包看你的代码。所以一定要控制上传的目录与文件类型,一般只可以上传图片。
下面就分别介绍下php上传文件、php上传图片的方法与代码。
创建一个文件上传表单
允许用户从表单上传文件是非常有用的。
请看下面这个供上传文件的 HTML 表单:
<html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submit" /> </form> </body> </html>
请留意如下有关此表单的信息:
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
创建上传脚本
"upload_file.php" 文件含有供上传文件的代码:
<?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } ?>
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
$_FILES["file"]["name"] - 被上传文件的名称 $_FILES["file"]["type"] - 被上传文件的类型 $_FILES["file"]["size"] - 被上传文件的大小,以字节计 $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称 $_FILES["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。
上传限制
在这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:
<?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } } else { echo "Invalid file"; } ?>
注释:对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg。
保存被上传的文件
上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本。
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
<?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>
上面的脚本检测了是否已存在此文件,如果不存在,则把文件拷贝到指定的文件夹。
注释:这个例子把文件保存到了名为 "upload" 的新文件夹。
发表评论
-
php发送post请求函数
2014-03-10 09:08 473一个php发送post请求的函数。 代码如下: < ... -
php function用法如何递归及return和echo区别
2014-03-10 09:07 604php function用法如何递归及return和echo区 ... -
PHP数据过滤函数参考
2014-03-10 09:06 4771、php提交数据过滤的基 ... -
PHP_Cooikes不同页面无法传递怎么办
2014-03-08 08:11 305PHP_Cooikes不同页面无法传递的解决方法。 刚开始设置 ... -
php统计文章排行的代码
2014-03-06 17:11 582php统计文章排行示例,代码可以用在dedemcs上按月、周 ... -
c#批量上传图片到服务器示例分享
2014-03-06 17:07 1128c#批量上传图片到服务 ... -
php 启动报错的解决办法
2014-01-18 07:31 499php 启动时报错的情况,如下: [root@abc lnmp ... -
PHP文件上传原理分析
2014-01-11 08:20 279PHP文件上传原理简单分析,学习php的朋友可以参考下,确实比 ... -
php ftp文件上传函数(基础版)
2014-01-11 08:19 419不会用于php ftp函数文件上传,但有在使用比较高级的WEB ... -
php上传文件增强函数
2014-01-11 08:17 423php文件上传的增强函数首先变得傻瓜简单化,但并不是该函数的简 ... -
PHP生成随机用户名和密码的代码
2014-01-06 23:19 462使用PHP生成随机数可以应用在许多地方,比如可以设计程序的随机 ... -
PHP常见数据类型的汇总分享
2014-01-06 23:17 463PHP中常见的数据类型,特此记录。 PHP编程中常用的数据 ... -
php加减乘除计算器简单实现代码
2014-01-06 23:15 1115加减乘除计算器用php实现的,不错的示例。 代码: < ... -
PHP变色验证码实例
2014-01-06 23:13 372PHP实现变色验证码。 代码: <?php /** ... -
统计目录文件大小的php函数
2013-03-12 10:33 1081早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文 ... -
php 文件上传 简单代码
2013-03-10 08:15 7071、程序文件 <?php //判断临时文件存放路径是否 ... -
php上传图片的原理分析
2013-03-10 08:08 904在php编程中,有关php上传图片的问题,随时会遇到。 ph ... -
php无法上传大文件的解决方法
2013-03-07 22:59 696开发一个文件上传共享网站,曾想使用下面的代码实现文件上传的功能 ... -
php替换网址中参数变量的代码
2013-03-05 03:59 968发布:thatgirl 来源:net 阅读: 6 ... -
php中文字符串截取函数支持多种编码
2013-03-05 03:57 708发布:sunday01 来源:net 阅读: 1 ...
相关推荐
php图片与文件上传代码,使用: $tool = new HelperUpload(); $tool->upload($_FILES['pic'], $dir,$fname);
php文件上传代码
上传文件php代码,选择本机上的文件,php上传文件是转到缓存中,本代码实现了真正的上传,不是缓存文件
自己写的一个多文件上传php代码 ,是过程化的 注释不多,有基础的可以下载看看, 兄弟连
php文件上传代码以及封装的上传类,<?php //接收 $username=$_POST['username']; $fileintro=$_POST['fileintro']; //echo $username.$fileintro; //获取文件信息 /* echo "<pre>"; print_r($_FILES); ...
文件上传的代码,上传了两种不同方式的代码,希望对你有帮助
php简单文件上传源代码,非常简单的源代码适合初学者。
在最新版的图片上传控件中采用了全新的网络数据传输模块,新的模块全面优化了网络层的数据处理代码,同时在接收服务器返回的数据代码中采用精确识别的方式使数据处理效率更高。这些改进使图片上传控件具有了闪电般的...
php大文件上传,百兆文件上传,有进度条,有上传速度 之前发布一个大文件上传,但是问题太多,此版本相对上一个稳定得多 1,将压缩包里的 php_uploadprogress.dll 文件复制到你的PHP 安装目录里的扩展库文件夹 ...
php代码用的文件上传代码 使用jQuer类库,Ajax upload 插件,实现ajax 无刷新上传,
网上找来的,很好用的PHP上传文件源码,亲测。
LInux php上传文件代码
PHP上传文件到指定目录 源代码PHP上传文件到指定目录 源代码PHP上传文件到指定目录 源代码PHP上传文件到指定目录 源代码
jQuery PHP图片批量上传代码是一款支持多张图片批量上传,可拖动图片上传,也可以拖动进行图片排序上传,内含php文件。 js代码 [removed][removed] [removed][removed] [removed] window.webuploader = { ...
php文件上传类程序代码 public $max_size = '1000000';//设置上传文件大小 public $file_name = 'date';//重命名方式代表以时间命名,其他则使用给予的名称 public $allow_types;//允许上传的文件扩展名,不同...
最近因工作需要开发一个视频网站涉及到百兆视频上传,于是查阅各种资料实现php大文件上传,拿出来和大家共享下。 实现方法php_apc扩展。在php.ini自行安装apc扩展并作相应设置。
php大文件上传例子,包括实现的步骤及详细说明
php上传图片文件到数据库并以缩略图和分页的形式显示(完整版代码) 收藏了很久,拿出来共享一下,呵呵