PHP安全上传图片的方法


Posted in PHP onMarch 21, 2015

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
php mssql 时间格式问题
Jan 13 PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
Oct 23 PHP
PHP命名空间和自动加载类
Apr 03 PHP
php连接oracle数据库的核心步骤
May 26 PHP
PHP图片添加水印功能示例小结
Oct 03 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
Dec 16 PHP
php中实现可以返回多个值的函数实例
Mar 21 #PHP
php输出指定时间以前时间格式的方法
Mar 21 #PHP
php中文繁体和简体相互转换的方法
Mar 21 #PHP
php使用NumberFormatter格式化货币的方法
Mar 21 #PHP
php自定义错误处理用法实例
Mar 20 #PHP
php内嵌函数用法实例
Mar 20 #PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 #PHP
You might like
PHP函数utf8转gb2312编码
2006/12/21 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
Python文件处理
2016/02/29 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python GUI编程完整示例
2019/04/04 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
本科生职业生涯规划书范文
2014/01/21 职场文书
全国道德模范事迹
2014/02/01 职场文书
责任书范本
2014/08/25 职场文书
承诺书范本
2015/01/21 职场文书
年会邀请函范文
2015/01/30 职场文书
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis