图片上传

Index.php文件代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="upload2.php" method="post" enctype="multipart/form-data">
<input type="file" name='file'>
<input type="submit" value="上传">
</form>
</body>
</html>

upload.php代码:

图片上传步骤:

1:接收参数

2:判断错误

3:判断格式是否合法

4:判断文件大小

5:判断是是不是真正的图片

6:判断是否是http post提交

<?php
include('../function.php'); //接受参数
$file=$_FILES['file'];
$name=$file['name'];
$type=$file['type'];
$tmp_name=$file['tmp_name'];
$error=$file['error'];
$size=$file['size'];
$path='../images/'; //判断错误
if($error==UPLOAD_ERR_OK){
// exit('上传成功');
//判断格式是否合法
$format=array('jpeg','jpg','png','gif');
$ext=format($name);
if(!in_array($ext,$format)){
exit('图片格式不正确');
}
//判断文件大小
$allowSize=1048576; //1M
if($size>$allowSize){
exit('图片过大');
}
//判断是不是图片
$imgSize=getimagesize($tmp_name);
if(!$imgSize){
exit('这不是一个图片');
}
//判断是不是通过http post上传
if(is_uploaded_file($tmp_name)){
if(!file_exists($path)){
mkdir($path,0777,true);
chmod($path,0777);
}
$newName = getUniqidName().".".$Ext;
$dstpath = $path.'/'.$newName;
if(move_uploaded_file($tmp_name,$dstpath)){
echo $newName;
}else{
exit('图片上传失败');
}
}else{
exit('不是HTTP POST方式提交');
}
}else{
switch ($error) {
case '1':
exit('文件大小超过限定值');
break; case '2':
exit('文件大小超过了表单配置大小');
break;
case '3':
exit('文件只有部分被上传');
break;
case '4':
exit('没有文件被上传');
break;
case '6':
exit('没有找到缓存目录');
break;
case '7':
exit('目录不可写');
break;
case '8':
exit('PHP扩展程序阻止了文件上传');
break;
}
} //取文件后缀函数
function format($name){
$ext=explode('.',$name);
$val=end($ext);
return $val;
}
function getUniqidName(){
return md5(uniqid(microtime(true),true));
} ?>

文件上传

Index.php文件代码:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<form action="upload2.php" method="post" enctype="multipart/form-data">

<input type="file" name='file'>

<input type="submit" value="上传">

</form>

</body>

</html>

upload.php代码:

图片上传步骤:

1:接收参数

2:判断错误

3:判断格式是否合法

4:判断文件大小

5:判断是是不是真正的图片

6:判断是否是http post提交

代码:

<?php

include('../function.php');

//接受参数

$file=$_FILES['file'];

$name=$file['name'];

$type=$file['type'];

$tmp_name=$file['tmp_name'];

$error=$file['error'];

$size=$file['size'];

$path='../images/';

//判断错误

if($error==UPLOAD_ERR_OK){

// exit('上传成功');

//判断格式是否合法

$format=array('jpeg','jpg','png','gif');

$ext=format($name);

if(!in_array($ext,$format)){

exit('图片格式不正确');

}

//判断文件大小

$allowSize=1048576;                          //1M

if($size>$allowSize){

exit('图片过大');

}

//判断是不是图片

$imgSize=getimagesize($tmp_name);

if(!$imgSize){

exit('这不是一个图片');

}

//判断是不是通过http post上传

if(is_uploaded_file($tmp_name)){

if(!file_exists($path)){

mkdir($path,0777,true);

chmod($path,0777);

}

$newName = getUniqidName().".".$Ext;

$dstpath = $path.'/'.$newName;

if(move_uploaded_file($tmp_name,$dstpath)){

echo $newName;

}else{

exit('图片上传失败');

}

}else{

exit('不是HTTP POST方式提交');

}

}else{

switch ($error) {

case '1':

exit('文件大小超过限定值');

break;

case '2':

exit('文件大小超过了表单配置大小');

break;

case '3':

exit('文件只有部分被上传');

break;

case '4':

exit('没有文件被上传');

break;

case '6':

exit('没有找到缓存目录');

break;

case '7':

exit('目录不可写');

break;

case '8':

exit('PHP扩展程序阻止了文件上传');

break;

}

}

//取文件后缀函数

function format($name){

$ext=explode('.',$name);

$val=end($ext);

return $val;

}

function getUniqidName(){

return md5(uniqid(microtime(true),true));

}

?>

PHP——图片上传的更多相关文章

  1. Asp.Net Mvc 使用WebUploader 多图片上传

    来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...

  2. 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  3. JS图片上传预览插件制作(兼容到IE6)

    其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方 ...

  4. HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术

    最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...

  5. 对百度的UEditor多图片上传的一些补充

    我已经写了一篇文章关于百度的UEditor提取多图片上传模块.如果还没有看过,请点击以下链接查看 http://www.cnblogs.com/luke1006/p/3719029.html 出差了两 ...

  6. 使用localResizeIMG3+WebAPI实现手机端图片上传

    前言 惯例~惯例~昨天发表的使用OWIN作为WebAPI的宿主..嗯..有很多人问..是不是缺少了什么 - - 好吧,如果你要把OWIN寄宿在其他的地方...代码如下: namespace Conso ...

  7. TinyMCE的使用(包括汉化及本地图片上传功能)

    TinyMCE我就不多介绍了,这是下载地址:https://www.tinymce.com/download/ 下载下来是英文版,要汉化也很简单.首先去网上随便下载个汉化包,然后把汉化包解压后的lan ...

  8. 包含修改字体,图片上传等功能的文本输入框-Bootstrap

    通过jQuery Bootstrap小插件,框任何一个div转换变成一个富文本编辑框,主要特色: 在Mac和window平台下自动针对常用操作绑定热键 可以拖拽插入图片,支持图片上传(也可以获取移动设 ...

  9. PHP多图片上传实例demo

    upload.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  10. .NET MVC实现多图片上传并附带参数(ajaxfileupload)

    做网站呢,都免不了要做图片上传. 还记得去年做微信的时候用WebAPI+ajaxfileupload.js做了一个能够附带参数上传的功能,博文地址:.NET WebAPI 实现图片上传(包括附带参数上 ...

随机推荐

  1. ASP.Net IE10 _doPostBack 未定义错误【转】

    --昨天发现IE10下面ReportViewer执行报表会报错,发现为Js报_doPostBack 未定义错误,查找相关资料发现问题为 当前framework不能识别IE10版本,把该浏览器做降级处理 ...

  2. 教程-(SQL DBE、ADO连接)+(Firebird火鸟+DbExpress)+(VF DBF数据库)+(DB Paradox)

    DBE 连接SQL Server显然用ADO或DBEXPRESS更有优势,起码连接起来比较方便. BDE的话可以用如下方法:(以下以Delphi7为例,其它版本的DELPHI请自己摸索一下,不过基本相 ...

  3. nyoj 1870 愚人节礼物

    愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  4. D3D游戏编程系列(三):自己动手编写即时战略游戏之寻路

    说起即时战略游戏,不得不提的一个问题是如何把一个物体从一个位置移动到另一个位置,当然,我说的不是瞬移,而是一个移动的过程,那么在这个移动的过程中我们如何来规划路线呢,这就不得不提到寻路了. 我所了解到 ...

  5. C#- 基于Lumisoft.NET组件的POP3邮件接管和删除操纵

    Lumisoft.NET组件是一个很是强大的邮件发送.邮件接管等功能的开源组件,一般用它来处理惩罚邮件的相干操纵,是很是合适的.之前也写过一些该组件的漫笔文章,不过主如果哄骗来发送邮件居多,比来因为项 ...

  6. Java-Web监听器

    在WEB端实现监听实质: 实现一系列的监听接口(实现相应的接口,覆写各接口中相应的方法,在相应的事件触发的时候会执行自己的监听器中的覆写的方法,在各个方法中完成自己想要的操作,从而实现了监听) 监听- ...

  7. 如何停止IIS

    当一台计算机同时安装了IIS服务器和apache服务器的时候,需要运行其中的一个服务器就需要将另一个服务器停止,那么如何停止IIS服务器: 双击[world wide web publishing s ...

  8. GROUP BY,WHERE,HAVING之间的差别和使用方法

    having子句与where有类似之处但也有差别,都是设定条件的语句.在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先运行.而where子句在查询过程中运行优 ...

  9. ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)(转)

    前两天也偶尔出现这个错误,也没在意,因为我重新修改一下mysql的root密码后又可以用了,但昨天却不行,我把root密码修改以后虽然当时能用, 一旦重新进入就都不能用了,可我的密码明明没有错啊?今天 ...

  10. 一个卡片式的ViewPager,带你玩转ViewPager的PageTransformer属性!

    ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法.那么我今天说的是ViewPager ...