php上传图片学习笔记与心得
如果 PHP 的设置选项 register_globals 为 on,则相关的变量名将也会存在。从 PHP 4.2.0 版本开始,register_globals 的默认值被设为 off。
我们假设文件上传字段的名称为 userfile。名称可随意命名。
$_FILES['userfile']['name']
客户端机器文件的原名称。
$_FILES['userfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。
处理函数:
move_uploaded_file()
(PHP 4 >= 4.0.3, PHP 5)
move_uploaded_file -- 将上传的文件移动到新位置
说明
bool move_uploaded_file ( string filename, string destination )
本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。
如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。
如果目标文件已经存在,将会被覆盖。
示例:
代码如下 | 复制代码 |
if(move_uploaded_file($_FILES["magfile"]["tmp_name"], $uploaddir)) { echo "Update OK!"; } |
也可用copy(PHP 3, PHP 4, PHP 5)
copy -- 拷贝文件
bool copy ( string source, string dest )
将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。
提交页:
代码如下 | 复制代码 |
<form action="." method="post" enctype="multipart/form-data" name="UL"> |
处理页:
代码如下 | 复制代码 |
if($_FILES['picurl']['size'] > 0){ |
其它非File类型的表单,可照样用$_POST['name']来接收。
php上传图片简单实现
代码如下 | 复制代码 |
<html> <head> <title>PHP上传图片简单实现 </title> </head> <body> <?php if($_GET['action'] == 'upfile') { $target_path = 'temp_'.$_FILES['photo']['name']; echo '上传的临时文件:' .$_FILES['photo']['tmp_name'] . '<br/>'; echo '上传的目标文件:' .$target_path . '<br/>'; echo $_SERVER["SCRIPT_FILENAME"] . '<br/>'; echo $_SERVER["OS"] . '<br/>'; //测试函数: move_uploaded_file //也可以用函数:copy move_uploaded_file($_FILES['photo']['tmp_name'], $target_path); echo "Upload result:"; if(file_exists($target_path)) { if($_SERVER["OS"]!="Windows_NT"){ @chmod($target_path,0604); } echo '<font color="green">Succeed!</font><br /><a href="http://' .$_SERVER["SERVER_NAME"] . "/" .$target_path .'"><img src=' .$target_path .' border="0">'; } else { echo '<font color="red">Failed!</font>'; } exit; } ?> <h1>Registration</h1> <form action="upload.php?action=upfile" method="post" name="UForm" enctype="multipart/form-data"> <fieldset> <legend>Your information</legend> <ul> <li>Your Phot<input type="file" name="photo"></li> </ul> </fieldset> <button type="submit">上传</button> </form> </body> </html> |
上面代码只适用于学习使用,如果想使用在现在的服务器上我们必须如下写法
代码如下 | 复制代码 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php 参数说明: 使用说明: //上传文件类型列表 $max_file_size=2000000; //上传文件大小限制, 单位BYTE <body> <?php $file = $_FILES["upfile"]; if(!in_array($file["type"], $uptypes)) if(!file_exists($destination_folder)) $filename=$file["tmp_name"]; if(!move_uploaded_file ($filename, $destination)) $pinfo=pathinfo($destination); if($watermark==1) imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); switch($watertype) switch ($iinfo[2]) //覆盖原上传文件 if($imgpreview==1) |
login.htm
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <body> |
login.php
代码如下 | 复制代码 |
function showPage() //判断是否登录 未登录直接跳转至登录页面 |
退出登录
out.php
代码如下 | 复制代码 |
function loginOut() //登出函数 |
简单的创建session
代码如下 | 复制代码 |
<? |
在该例子中,我们向 session 注册了一个名为 username 的变量,其值为 nostop 。
读取 session
PHP 内置的 $_SESSION 变量可以很方便的访问设置的 session 变量。
代码如下 | 复制代码 |
例子: |
销毁 session
代码如下 | 复制代码 |
session_unregister() 注销单个 session 变量 |
例子:
代码如下 | 复制代码 |
<?php session_start(); session_unregister("username"); //注销 session 某个变量 session_unset(); //注销 session 会话 ?> |
看一个完整的session使用方法,
使用session来保存用户登录信息
代码如下 | 复制代码 |
|
登录页面:logIn.php
代码如下 | 复制代码 |
//如果用户未登录,即未设置$_SESSION['user_id']时,执行以下代码 if(!empty($user_username)&&!empty($user_password)){ <label for="username">Username:</label> <br/> <label for="password">Password:</label> </fieldset> |
3、登入页面:loged.php
代码如下 | 复制代码 |
|
4、注销session页面:logOut.php(注销后重定向到lonIn.php)
代码如下 | 复制代码 |
<?php |
empty() 与 isset() 的一个简单比较。
代码如下 | 复制代码 |
<?php |
上面的empty与isset判断为没有任何属性的对象都将被认为是空.
var == null
功能:判断变量是否为“空”
说明:值为 0 或 false 或 空字符串”" 或 null的变量、空数组、都将判断为 null
注意:与empty的显著不同就是:变量未初始化时 var == null 将会报错。
代码如下 | 复制代码 |
$a = 0; // Undefined variable: c |
is_null
代码如下 | 复制代码 |
$a = null; // Undefined variable: c 变量==0 或 变量===0 |
例
代码如下 | 复制代码 |
$a ===0 $a ==="" |
在php url传参数时
php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:
代码如下 | 复制代码 |
if(empty($id)) $id=1; // 若 id=0 ,id 也会为1 if(empty($id)) $id=1; |
总结
在php中NULL与空是两种不同的概念,
isset 主要用来判断变量是否被初始化过
empty 可以将值为 “假”、“空”、“0”、“NULL”、“未初始化” 的变量都判断为TRUE
is_null 仅把值为 “NULL” 的变量判断为TRUE
var == null 把值为 “假”、“空”、“0”、“NULL” 的变量都判断为TRUE
var === null 仅把值为 “NULL” 的变量判断为TRUE
其它一些可能用到php变量判断的函数
isset($ var) : //变量是不是已经声明
empty($ var): //变量是不是为空
defined($ var): //常量是不是已经定义 define()
is_array($ var): //检验测定变量是不是是数组
is_null($ var): //检验测定变量是不是为 null
在php中检查变量类型的方法很简单,利用gettype()函数就可返回当前变量类型的了,下面我来给各位朋友详细介绍如何利用gettype函数检查变量类型,有需要了解的朋友可参考。string gettype ( mixed $var ) 返回 PHP 变量的类型 var.
例
代码如下 | 复制代码 |
<?php |
官方说:不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含
了字符串的比较,它的运行也是较慢的。
使用 is_* 函数代替。
代码如下 | 复制代码 |
<?php |
其它的些变量类型判断收藏
array_key_exists(mixed key, array search) ://检查给定的键名或索引是不是存在于数组中 判断数据类型
is_numeric ( mixed var ): //检验测定变量是不是为数码或数码字符串
is_bool($ var): //检验测定变量是不是是布尔型
is_float($ var): //检验测定变量是不是是浮点型 和is_double,is_real()都同样的用法
is_int($ var): //检验测定变量是不是是整儿is_integer()同样的用法
is_string($ var): //检验测定变量是不是是字符串
is_object($ var): //检验测定变量是不是是一个对象
is_array($ var): //检验测定变量是不是是数组
is_null($ var): //检验测定变量是不是为 null
相关文章
使用PHP+JavaScript将HTML页面转换为图片的实例分享
这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13- 下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
- Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
- 图片剪裁是常用的方法,那么如何通过4坐标剪裁图片,本文就详细的来介绍一下,感兴趣的小伙伴们可以参考一下...2021-06-04
- 共享一段使用PHP下载CSS文件中的图片的代码 复制代码 代码如下: <?php //note 设置PHP超时时间 set_time_limit(0); //note 取得样式文件内容 $styleFileContent = file_get_contents('images/style.css'); //not...2013-10-04
- 这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
- PHP代码如下:复制代码 代码如下:if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) { $upload_file = $_FILES['Filedata']; $fil...2013-10-04
C#中图片旋转和翻转(RotateFlipType)用法分析
这篇文章主要介绍了C#中图片旋转和翻转(RotateFlipType)用法,实例分析了C#图片旋转及翻转Image.RotateFlip方法属性的常用设置技巧,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了OpenCV如何去除图片中的阴影的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-29
- ps软件是现在很多人比较喜欢的,有着非常不错的使用效果,这次文章就给大家介绍下ps怎么制作图片阴影效果,还不知道制作方法的赶紧来看看。 ps图片阴影效果怎么做方法/...2017-07-06
- 本文主要介绍用C#实现图片转换成字节流,字节流转换成图片,并根据图片路径返回图片的字节流,有需要的朋友可以参考下...2020-06-25
- 这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
- 这篇文章主要介绍了JavaScript 如何禁止用户保存图片,帮助大家完成需求,更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-19
- 我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
- 1、简介Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目...2014-05-31