PHP安全上传图片的方法

本文实例讲述了PHP安全上传图片的方法。分享给大家供大家参考。具体分析如下:

这段代码用于上传图片,可以根据图片类型检测图片是否安全,不是简单的检测扩展名

<?php // upload.php
echo <<<_END
<html><head><title>PHP Form Upload</title></head><body>
<form method='post' action='upload2.php' enctype='multipart/form-data'>
Select a JPG, GIF, PNG or TIF File:
<input type='file' name='filename' size='10' />
<input type='submit' value='Upload' /></form>
_END;
if ($_FILES)
{
$name = $_FILES['filename']['name'];
switch($_FILES['filename']['type'])
{
case 'image/jpeg': $ext = 'jpg'; break;
case 'image/gif': $ext = 'gif'; break;
case 'image/png': $ext = 'png'; break;
case 'image/tiff': $ext = 'tif'; break;
default: $ext = ''; break;
}
if ($ext)
{
$n = "image.$ext";
move_uploaded_file($_FILES['filename']['tmp_name'], $n);
echo "Uploaded image '$name' as '$n':<br />";
echo "<img src='$n' />";
}
else echo "'$name' is not an accepted image file";
}
else echo "No image has been uploaded";
echo "</body></html>";
?>

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • PHP+Javascript实现在线拍照功能实例

    本文实例讲述了PHP+Javascript实现在线拍照功能.分享给大家供大家参考.具体如下: 我们在一些WEB应用中可能会遇到这样的情况,用户需要自己现场拍照并上传到会员系统.比如驾校采集指纹拍照流程.考试现场采集照片等.我们今天要讲的是如何使用javascript和PHP实现一个简单的在线拍照并上传的功能. 实现这个功能的前提是你的电脑设备上需要安装有摄像头设备,以及你的浏览器需要支持flash <!DOCTYPE HTML> <html> <head> <me

  • php实现按指定大小等比缩放生成上传图片缩略图的方法

    本文实例讲述了php实现按指定大小等比缩放生成上传图片缩略图的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /**  * *  *等比缩放  * @param unknown_type $srcImage   源图片路径  * @param unknown_type $toFile     目标图片路径  * @param unknown_type $maxWidth   最大宽  * @param unknown_type $maxHeight  最大高  * @par

  • php上传图片之时间戳命名(保存路径)

    html代码: <div id="images" style="width:250px;height:120px;background:#fff;border:1px solid #ccc;"> <h2><strong>图片导入</strong></h2> <form enctype="multipart/form-data" action="./includer/imp

  • php实现上传图片文件代码

    代码很简单,这里我们就不多废话了,直接奉上源码 <?php // 注册表单的姓名 $name=""; $nameErr=""; if ($_SERVER["REQUEST_METHOD"]=="POST") { if (empty($_POST['name'])) { }else{ $name=$_POST['name']; if (!preg_match("/^[a-zA-Z]*$/", $name

  • PHP批量上传图片的具体实现方法介绍.

    大家可以通过下面这一段代码,来具体了解PHP批量上传图片的具体方式.我们在学习PHP的时候,肯定是要从实际操作中慢慢积累经验,以巩固我们所学到的知识,逐渐的加强我们的编程水平. •PHP保护文件系统的具体代码分享•PHP保护数据库的具体代码示例•探讨主要的PHP应用领域•基于PHP的AJAX技术的具体应用解析•PHP限制上传文件大小的具体解决办法PHP批量上传图片的代码如下: 复制代码 代码如下: <html> <head><title>uploadpicturemor

  • php实现上传图片保存到数据库的方法

    php实现上传图片保存到数据库的方法.分享给大家供大家参考.具体分析如下: php 上传图片,一般都使用move_uploaded_file方法保存在服务器上.但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外) 如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间. 首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库. mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据

  • php+js iframe实现上传头像界面无跳转

    上传头像,界面无跳转的方式很多,我用的是加个iframe那种.下面直接上代码. html: 复制代码 代码如下: //route 为后端接口 //upload/avatar 为上传的头像的保存地址 //imgurl=/upload/avatar/<?=$uid?> 这里最后的<?=$uid?>是为了后面用js实现即时显示最新的更换后的头像用的,参照下面的js部分的代码 //头像保存名称为uid.type,如1.jpg,2.png等 //$user['avatar'] 用户如果上传过

  • android上传图片到PHP的过程详解

    今天在做上传头像的时候,总是提交连接超时错误,报错信息如下:XXXXXXSokcetTimeOutXXXXXXXX 然后自己设置HTTP的超时时间: 复制代码 代码如下: [java] view plaincopyprint? //设置超时时间  httpclient.setTimeout(20000); 再building,runing,还是不行....这就怪了,明明好好的,怎么会突然就变成连接超时了呢!又折腾了一阵子后,也跟后台那边的朋友沟通过,他也测试了上传接口,发现没什么问题,就让我自己

  • PHP上传图片进行等比缩放可增加水印功能

    啥也不说,直接上代码,大家可以自行添加增加水印功能: 复制代码 代码如下: <?php /** * * @author zhao jinhan * @date 2014年1月13日11:54:30 * @email xb_zjh@126.com * */ header('Content-type:text/html; charset=utf-8'); //定义缩略图的宽高 define('THUMB_WIDTH',300); define('THUMB_HEIGHT',300); /** * 重

  • 基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片

    本文用示例讲述了如何使用jQuery与PHP及Mysql结合,实现WEB版在线拍照.上传.显示浏览的功能,ajax交互技术贯穿本文始末,所以本文的读者要求具备相当熟悉jQuery及其插件使用和javscript相关知识,具备PHP和Mysql相关知识. 点击此处下载源码     HTML 首先,我们要建立一个主页面index.html来展示最新上传的照片,我们使用jQuery来获取最新的照片,所以这是一个HTML页面,不需要PHP标签,当然还要建立一个包括用来拍照和上传交互所需的HTML结构.

  • php上传图片到指定位置路径保存到数据库的具体实现

    1.conn.php 复制代码 代码如下: <? $host="localhost"; //数据库服务器名称 $user="root"; //用户名 $pwd="1721"; //密码 $conn=mysql_connect($host,$user,$pwd); mysql_query("SET character_set_connection=gb2312, character_set_results=gb2312, chara

  • 6种php上传图片重命名的方法实例

    一.适用场景:无法使用从数据库中返回的自增长数字,给上传图片重命名.这是图片或文件上传的流程决定的.一般图片上传处理过程是,先上传图片到服务器,重命名之后,插入到数据库.也就是说,在数据库中非常容易获得的自增长id,无法用于给上传的图片重命名,来避免文件名称的重复,而采用从数据库中获取最大id加1的方式,增加了数据库连接的次数,不适用于高并发和数据量巨大的情况:二.常规方案:1,guid:32 字符十六进制数.格式:GUID 的格式为"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx

  • php修改上传图片尺寸的方法

    本文实例讲述了php修改上传图片尺寸的方法.分享给大家供大家参考.具体实现方法如下: <?php // This is the temporary file created by PHP $uploadedfile = $_FILES['uploadfile']['tmp_name']; // Create an Image from it so we can do the resize $src = imagecreatefromjpeg($uploadedfile); // Capture

  • php上传图片存入数据库示例分享

    大部分人的图片上传都是保存一个路径到数据库,这样在插入时确实快,也符合web的特点,但是在删除时就很麻烦,需要找到文件并删除,该代码能够把代码直接存入数据库,删除时一并删除.请注意:这样的话数据库大小会激增,请酌情使用 表结构  复制代码 代码如下: CREATE TABLE `upload` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `type` varchar(20) NOT NULL,  `data` mediumblob NOT

  • php视频拍照上传头像功能实现代码分享

    如果要在php中实现视频拍照我们需要借助于flash插件了,由flash拍出的确照片我们再通过php的$GLOBALS ['HTTP_RAW_POST_DATA']接受数据,然后保存成图片就可以了,下面我来介绍一下. 使用的是$GLOBALS ['HTTP_RAW_POST_DATA'],这个系统函数跟post很相似,但是$GLOBALS ['HTTP_RAW_POST_DATA']支持的数据格式更丰富些. 设计流程: $GLOBALS ['HTTP_RAW_POST_DATA']传递照片数据流

随机推荐