通过 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 529一个php发送post请求的函数。 代码如下: < ... -
php function用法如何递归及return和echo区别
2014-03-10 09:07 638php function用法如何递归及return和echo区 ... -
PHP数据过滤函数参考
2014-03-10 09:06 5201、php提交数据过滤的基 ... -
PHP_Cooikes不同页面无法传递怎么办
2014-03-08 08:11 338PHP_Cooikes不同页面无法传递的解决方法。 刚开始设置 ... -
php统计文章排行的代码
2014-03-06 17:11 617php统计文章排行示例,代码可以用在dedemcs上按月、周 ... -
c#批量上传图片到服务器示例分享
2014-03-06 17:07 1181c#批量上传图片到服务 ... -
php 启动报错的解决办法
2014-01-18 07:31 537php 启动时报错的情况,如下: [root@abc lnmp ... -
PHP文件上传原理分析
2014-01-11 08:20 312PHP文件上传原理简单分析,学习php的朋友可以参考下,确实比 ... -
php ftp文件上传函数(基础版)
2014-01-11 08:19 455不会用于php ftp函数文件上传,但有在使用比较高级的WEB ... -
php上传文件增强函数
2014-01-11 08:17 457php文件上传的增强函数首先变得傻瓜简单化,但并不是该函数的简 ... -
PHP生成随机用户名和密码的代码
2014-01-06 23:19 494使用PHP生成随机数可以应用在许多地方,比如可以设计程序的随机 ... -
PHP常见数据类型的汇总分享
2014-01-06 23:17 498PHP中常见的数据类型,特此记录。 PHP编程中常用的数据 ... -
php加减乘除计算器简单实现代码
2014-01-06 23:15 1164加减乘除计算器用php实现的,不错的示例。 代码: < ... -
PHP变色验证码实例
2014-01-06 23:13 436PHP实现变色验证码。 代码: <?php /** ... -
统计目录文件大小的php函数
2013-03-12 10:33 1118早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文 ... -
php 文件上传 简单代码
2013-03-10 08:15 7421、程序文件 <?php //判断临时文件存放路径是否 ... -
php上传图片的原理分析
2013-03-10 08:08 933在php编程中,有关php上传图片的问题,随时会遇到。 ph ... -
php无法上传大文件的解决方法
2013-03-07 22:59 737开发一个文件上传共享网站,曾想使用下面的代码实现文件上传的功能 ... -
php替换网址中参数变量的代码
2013-03-05 03:59 1005发布:thatgirl 来源:net 阅读: 6 ... -
php中文字符串截取函数支持多种编码
2013-03-05 03:57 739发布:sunday01 来源:net 阅读: 1 ...
相关推荐
php图片与文件上传代码,使用: $tool = new HelperUpload(); $tool->upload($_FILES['pic'], $dir,$fname);
在PHP中,文件上传是网站常见的一种功能,用于让用户上传图片、文档或其他...以上就是PHP文件上传的基本流程和关键知识点。在实际应用中,你还需要根据项目需求进行适当的调整和优化,确保文件上传功能既高效又安全。
在PHP中,文件上传是一项常见的任务,特别是在构建网站或应用程序时,用户可能需要上传图片、文档或其他类型的文件。本文将详细讲解如何实现一个真正的文件上传功能,而不是将文件暂存到服务器的缓存中。 首先,...
3. **验证文件**:在上传之前,必须检查文件是否是有效的图片文件,防止恶意文件上传。这可以通过检查文件扩展名和MIME类型来完成: ```php $allowed_extensions = ['jpg', 'jpeg', 'png', 'gif']; $file_...
自己写的一个多文件上传php代码 ,是过程化的 注释不多,有基础的可以下载看看, 兄弟连
下面我们将详细探讨PHP文件上传的标准代码实现及其工作原理。 首先,PHP文件上传需要使用`<form>`标签来创建一个表单,其中`enctype="multipart/form-data"`属性是必不可少的,因为它指示浏览器以多部分/二进制格式...
php文件上传代码以及封装的上传类,<?php //接收 $username=$_POST['username']; $fileintro=$_POST['fileintro']; //echo $username.$fileintro; //获取文件信息 /* echo "<pre>"; print_r($_FILES); ...
常见的服务器端语言如PHP、Node.js、Python等都有成熟的文件上传库或框架来处理这些任务。 8. **安全性考虑** 文件上传功能必须谨慎处理,以防止恶意文件注入(如上传脚本文件)和DoS攻击。文件名应安全重命名,...
在这个项目中,有多个PHP文件,如`fileupload.php`、`fileinit.php`、`filedel.php`、`fileupdate.php`,它们分别对应不同的操作: 1. `fileupload.php`:这是主要的图片上传处理脚本,接收前端通过jQuery发送的...
以上就是一个简单的PHP文件上传示例。然而,实际应用中还需要考虑更多安全措施,比如防止文件覆盖、文件名注入、恶意文件上传等。此外,可能还需要添加数据库记录,以便管理和检索上传的文件。这个“php简单文件上传...
本插件是一款简洁而实用的PHP文件上传解决方案,旨在帮助开发者快速集成文件上传功能,提升用户体验。下面将详细介绍这款插件的核心特性、使用方法以及相关知识点。 1. **核心特性** - **易用性**:这款插件设计...
PHP文件上传源码主要涉及以下几个关键知识点: 1. **表单设计**:在HTML中,我们需要一个`<form>`元素来允许用户选择要上传的文件。关键属性包括`enctype="multipart/form-data"`(用于文件上传)和`method="post"`...
2. **后端处理**:在PHP文件(如`upload.php`)中,通过`$_FILES`全局数组获取上传文件的信息。 ```php if(isset($_POST["submit"])) { $file = $_FILES["fileToUpload"]; // 进一步处理文件... } ``` 3. **验证...
这里我们将深入探讨如何使用PHP实现这个功能,包括文件上传的基本原理、PHP的相关函数以及安全注意事项。 首先,我们需要理解HTTP协议中的文件上传机制。在HTML表单中,我们可以使用`<input type="file">`来让用户...
在PHP开发中,大文件上传是一项常见的需求,尤其是在多媒体内容分享、文件共享或者云存储服务等场景下。然而,PHP默认设置对大文件上传有限制,可能会导致上传失败或者超时。本案例将探讨如何通过PHP实现大文件的...
在PHP开发中,文件上传是常见的功能之一,用于让用户上传图片、文档等文件到服务器。为了简化这个过程,开发者通常会使用预定义的类库或自定义的上传类。在这个"php中一个很好用的文件上传类.zip"压缩包中,包含了一...
一旦文件上传成功,预览图片通常需要生成一个HTML链接来显示图片。可以使用`<img>`标签,并设置`src`属性为图片路径: ```html <img src="uploads/<?php echo basename($_FILES['image']['name']); ?>" alt="Your...
以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload()`用于执行实际的文件上传操作,`checkFileSize()`用于检查文件大小,`checkFileType()`用于验证...
【PHP上传文件开源代码DEMO】是一个用于学习和实践PHP文件上传功能的示例代码。在PHP中,文件上传是Web开发中常见的需求,比如用户可能需要上传头像、附件等。这个DEMO展示了如何安全地处理文件上传,包括限制上传...
"php upload文件上传代码 jquery ajax无刷新"这个主题涵盖了如何利用这些技术实现文件上传,同时保持页面的无刷新特性。让我们深入探讨一下这个过程。 首先,我们要明白文件上传的基本原理。在HTML中,`...