`
xfcode
  • 浏览: 23370 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP 图片文件上传代码

    博客分类:
  • php
 
阅读更多
通过 PHP,可以把文件上传到服务器。里面加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件。

为了网站的安全,肯定不让上传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图片与文件上传代码

    php图片与文件上传代码,使用: $tool = new HelperUpload(); $tool-&gt;upload($_FILES['pic'], $dir,$fname);

    php文件上传代码

    在PHP中,文件上传是网站常见的一种功能,用于让用户上传图片、文档或其他...以上就是PHP文件上传的基本流程和关键知识点。在实际应用中,你还需要根据项目需求进行适当的调整和优化,确保文件上传功能既高效又安全。

    文件上传php代码

    在PHP中,文件上传是一项常见的任务,特别是在构建网站或应用程序时,用户可能需要上传图片、文档或其他类型的文件。本文将详细讲解如何实现一个真正的文件上传功能,而不是将文件暂存到服务器的缓存中。 首先,...

    php图片上传源代码

    3. **验证文件**:在上传之前,必须检查文件是否是有效的图片文件,防止恶意文件上传。这可以通过检查文件扩展名和MIME类型来完成: ```php $allowed_extensions = ['jpg', 'jpeg', 'png', 'gif']; $file_...

    php多文件上传代码(过程化代码)

    自己写的一个多文件上传php代码 ,是过程化的 注释不多,有基础的可以下载看看, 兄弟连

    PHP文件上传标准代码

    下面我们将详细探讨PHP文件上传的标准代码实现及其工作原理。 首先,PHP文件上传需要使用`&lt;form&gt;`标签来创建一个表单,其中`enctype="multipart/form-data"`属性是必不可少的,因为它指示浏览器以多部分/二进制格式...

    php文件上传代码以及封装的上传类

    php文件上传代码以及封装的上传类,&lt;?php //接收 $username=$_POST['username']; $fileintro=$_POST['fileintro']; //echo $username.$fileintro; //获取文件信息 /* echo "&lt;pre&gt;"; print_r($_FILES); ...

    上传文件代码源码 网页上传源码

    常见的服务器端语言如PHP、Node.js、Python等都有成熟的文件上传库或框架来处理这些任务。 8. **安全性考虑** 文件上传功能必须谨慎处理,以防止恶意文件注入(如上传脚本文件)和DoS攻击。文件名应安全重命名,...

    jQuery PHP图片批量上传代码

    在这个项目中,有多个PHP文件,如`fileupload.php`、`fileinit.php`、`filedel.php`、`fileupdate.php`,它们分别对应不同的操作: 1. `fileupload.php`:这是主要的图片上传处理脚本,接收前端通过jQuery发送的...

    php简单文件上传源代码

    以上就是一个简单的PHP文件上传示例。然而,实际应用中还需要考虑更多安全措施,比如防止文件覆盖、文件名注入、恶意文件上传等。此外,可能还需要添加数据库记录,以便管理和检索上传的文件。这个“php简单文件上传...

    php文件上传插件(简洁好用的上传插件)

    本插件是一款简洁而实用的PHP文件上传解决方案,旨在帮助开发者快速集成文件上传功能,提升用户体验。下面将详细介绍这款插件的核心特性、使用方法以及相关知识点。 1. **核心特性** - **易用性**:这款插件设计...

    php文件上传源码

    PHP文件上传源码主要涉及以下几个关键知识点: 1. **表单设计**:在HTML中,我们需要一个`&lt;form&gt;`元素来允许用户选择要上传的文件。关键属性包括`enctype="multipart/form-data"`(用于文件上传)和`method="post"`...

    php大文件上传例子及说明

    2. **后端处理**:在PHP文件(如`upload.php`)中,通过`$_FILES`全局数组获取上传文件的信息。 ```php if(isset($_POST["submit"])) { $file = $_FILES["fileToUpload"]; // 进一步处理文件... } ``` 3. **验证...

    php 图片上传代码

    这里我们将深入探讨如何使用PHP实现这个功能,包括文件上传的基本原理、PHP的相关函数以及安全注意事项。 首先,我们需要理解HTTP协议中的文件上传机制。在HTML表单中,我们可以使用`&lt;input type="file"&gt;`来让用户...

    php大文件上传

    在PHP开发中,大文件上传是一项常见的需求,尤其是在多媒体内容分享、文件共享或者云存储服务等场景下。然而,PHP默认设置对大文件上传有限制,可能会导致上传失败或者超时。本案例将探讨如何通过PHP实现大文件的...

    php中一个很好用的文件上传类.zip

    在PHP开发中,文件上传是常见的功能之一,用于让用户上传图片、文档等文件到服务器。为了简化这个过程,开发者通常会使用预定义的类库或自定义的上传类。在这个"php中一个很好用的文件上传类.zip"压缩包中,包含了一...

    php上传图片并预览源码

    一旦文件上传成功,预览图片通常需要生成一个HTML链接来显示图片。可以使用`&lt;img&gt;`标签,并设置`src`属性为图片路径: ```html &lt;img src="uploads/&lt;?php echo basename($_FILES['image']['name']); ?&gt;" alt="Your...

    PHP文件上传类

    以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload()`用于执行实际的文件上传操作,`checkFileSize()`用于检查文件大小,`checkFileType()`用于验证...

    PHP上传文件开源代码DEMO

    【PHP上传文件开源代码DEMO】是一个用于学习和实践PHP文件上传功能的示例代码。在PHP中,文件上传是Web开发中常见的需求,比如用户可能需要上传头像、附件等。这个DEMO展示了如何安全地处理文件上传,包括限制上传...

    php upload文件上传代码 jquery ajax无刷新

    "php upload文件上传代码 jquery ajax无刷新"这个主题涵盖了如何利用这些技术实现文件上传,同时保持页面的无刷新特性。让我们深入探讨一下这个过程。 首先,我们要明白文件上传的基本原理。在HTML中,`...

Global site tag (gtag.js) - Google Analytics