PHP——图片上传
图片上传
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——图片上传的更多相关文章
- Asp.Net Mvc 使用WebUploader 多图片上传
来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...
- 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传
LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...
- JS图片上传预览插件制作(兼容到IE6)
其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方 ...
- HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术
最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...
- 对百度的UEditor多图片上传的一些补充
我已经写了一篇文章关于百度的UEditor提取多图片上传模块.如果还没有看过,请点击以下链接查看 http://www.cnblogs.com/luke1006/p/3719029.html 出差了两 ...
- 使用localResizeIMG3+WebAPI实现手机端图片上传
前言 惯例~惯例~昨天发表的使用OWIN作为WebAPI的宿主..嗯..有很多人问..是不是缺少了什么 - - 好吧,如果你要把OWIN寄宿在其他的地方...代码如下: namespace Conso ...
- TinyMCE的使用(包括汉化及本地图片上传功能)
TinyMCE我就不多介绍了,这是下载地址:https://www.tinymce.com/download/ 下载下来是英文版,要汉化也很简单.首先去网上随便下载个汉化包,然后把汉化包解压后的lan ...
- 包含修改字体,图片上传等功能的文本输入框-Bootstrap
通过jQuery Bootstrap小插件,框任何一个div转换变成一个富文本编辑框,主要特色: 在Mac和window平台下自动针对常用操作绑定热键 可以拖拽插入图片,支持图片上传(也可以获取移动设 ...
- PHP多图片上传实例demo
upload.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- .NET MVC实现多图片上传并附带参数(ajaxfileupload)
做网站呢,都免不了要做图片上传. 还记得去年做微信的时候用WebAPI+ajaxfileupload.js做了一个能够附带参数上传的功能,博文地址:.NET WebAPI 实现图片上传(包括附带参数上 ...
随机推荐
- CMDB, 配置管理数据库, ITIL - ManageEngine ServiceDesk Plus
Download Bitnami Review Board Stack click here CMDB, 配置管理数据库, ITIL - ManageEngine ServiceDesk Plus
- ZOJ3471--Most Powerful(状压DP)
有n(n<10)个小球,每两个碰撞有其中一个会消失,并产生一定能量.求产生最大能量. 有了正确思路题目比较简单,我的思路果然是歪的... 我的思路是dp[i][j]表示i这个状态剩下第j个小球, ...
- 微软的.NET示例代码放在Github上了
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:微软的.NET示例代码放在Github上了.
- C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
C#使用Windows API实现桌面上的遮罩层(鼠标穿透) C#实现实现桌面上的遮罩层(鼠标穿透)主要通过一下几个API函数来实现:GetWindowLong,SetWindowLong,SetLa ...
- 在大型软件中用Word做报表: 书签的应用
本文转载:http://www.cnblogs.com/huyong/archive/2011/08/24/2151599.html 报表基本上在每一个项目中占有很大的比例,做报表也是我们开发人员必须 ...
- Java实现文件的RSA和DES加密算法
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密) 对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密 ...
- Project interpreter not specified(eclipse+pydev)
[小记] 近期由于想配置Android的开发环境,把原来的MyEclipse5.5删了,下载了最新的Eclipse3.7版本号,由于之前在进行Python开发,就下载了最新的Pydev2.4版本号,安 ...
- 解决Eclipse自己主动补充问题空间
假设我们使用增强的战斗有时当代码完成功能 String ss时却发挥String ssString; Integer i 但打了 Integer integer; 很麻烦. 为这包的关系 org.ec ...
- 在不同平台上CocosDenshion所支持的音频格式
在大多数平台上,cocos2d-x调用不同的SDK API来播放背景音乐和音效.CocosDenshion在同一时间只能播放一首背景音乐,但是能同时播放多个音效. 背景音乐 Platform supp ...
- 从零开始,打造自己的首个 iOS 框架
如果你曾试图创建自己的iOS框架,你知道这不是一个头脑发热作出的决定 — 管理依赖以及写测试用例一点也不简单.本教程将会带你从头到尾创建你的第一个iOS框架,让你可以创建自己的框架. 我们将在框架暴露 ...