PHP简单的图片上传
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title> </head>
<body>
<div class="container">
<form enctype="multipart/form-data" action="upload.php?action=img" method="post" name="imge">
<input value="导入文件" type="file" name="img" id="file" />
<input type="submit" id="imgbut" class="btn" value="上传图片" />
</form> </div>
</body>
</html>
<?php
header("Content-Type:text/html;charset=utf-8");
if (isset($_GET["action"]) == "img") {
//step 1 使用$_FILES['pic']["error"] 检查错误
if ($_FILES["img"]["error"] > 0) {
switch ($_FILES["img"]["error"]) {
case 1 :
echo "<script type='text/javascript'>alert('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值<br>');history.back();</script>";
break;
case 2 :
echo "<script type='text/javascript'>alert('上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值');history.back();</script>";
break;
case 3 :
echo "<script type='text/javascript'>alert('文件只有部分被上传');history.back();</script>";
break;
case 4 :
echo "<script type='text/javascript'>alert('没有文件被上传');history.back();</script>";
break;
default :
echo "<script type='text/javascript'>alert('末知错误');history.back();</script>";
}
exit;
}
$maxsize = 1000000000;
//step 2 使用$_FILES["pic"]["size"] 限制大小 单位字节 2M=2000000
if ($_FILES["img"]["size"] > $maxsize) {
echo "<script type='text/javascript'>alert('上传的文件太大,不能超过{$maxsize}字节');history.back();</script>";
exit;
}
//step 3 使用$_FILES["pic"]["type"]或是文件的扩展名 限制类型 MIME image/gif image/png gif png jpg
$allowtype = array("png", "gif", "jpg", "jpeg");
$arr = explode(".", $_FILES["img"]["name"]);
$hz = $arr[count($arr) - 1];
if (!in_array($hz, $allowtype)) {
echo "<script type='text/javascript'>alert('这是不允许的类型');history.back();</script>";
exit;
}
//step 4 将让传后的文件名改名
$filepath = "uploads/";
//为了符合UBB的路径
$randname = date("Y") . date("m") . date("d") . date("H") . date("i") . date("s") . rand(100, 999) . "." . $hz;
//将临时位置的文件移动到指定的目录上即可
if (is_uploaded_file($_FILES["img"]["tmp_name"])) {
if (move_uploaded_file($_FILES["img"]["tmp_name"], $filepath . $randname)) {
echo "<script type='text/javascript'>alert('上传成功');history.back();</script>";
session_start();
$_SESSION['images'] = $filepath . $randname;
//echo $_SESSION['images'];
} else {
echo "<script type='text/javascript'>alert('上传失败');history.back();</script>";
}
} else {
echo "<script type='text/javascript'>alert('不是一个上传文件');history.back();</script>";
}
}
?>
参考:http://www.sucaihuo.com/php/210.html
PHP简单的图片上传的更多相关文章
- UEditor之实现配置简单的图片上传示例
UEditor之实现配置简单的图片上传示例 原创 2016年06月11日 18:27:31 开心一笑 下班后,阿华到楼下小超市买毛巾,刚买完出来,就遇到同一办公楼里另一家公司的阿菲,之前与她远远的有过 ...
- 一、简单的图片上传并预览功能input[file]
一.简单的图片上传并预览功能input[file] <!DOCTYPE html> <html lang="en"> <head> <me ...
- 微信小程序简单封装图片上传组件
微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ...
- koa2实现简单的图片上传
1.安装koa-body 2.引入koa-body const koa = require('koa'); const fs = require('fs'); const koaBody = requ ...
- UEditor之实现配置简单的图片上传示例 转
http://blog.csdn.net/huangwenyi1010/article/details/51637427 + http://blog.csdn.net/cr135810/article ...
- Webuploader 简单图片上传 支持多图上传
简介: 通过webuploader 实现简单的图片上传功能,支持多张图上传 官方文档传送门:http://fex.baidu.com/webuploader/getting-started.html# ...
- Django中怎么做图片上传--图片展示
1.首先是html页面的form表单的三大属性,action是提交到哪,method是提交方式,enctype只要有图片上传就要加这个属性 Django框架自带csrf_token ,所以需要在前端页 ...
- Asp.NetCoreWebApi图片上传接口(二)集成IdentityServer4授权访问(附源码)
写在前面 本文地址:http://www.cnblogs.com/yilezhu/p/9315644.html 作者:yilezhu 上一篇关于Asp.Net Core Web Api图片上传的文章使 ...
- 简单2步实现 asp.net mvc ckeditor 图片上传
1.打开ckeditor 包下的 config.js,添加一句 配置(PS:ckeditor 很多功能都在该配置文件里配置),如下: config.filebrowserImageUploadUrl ...
随机推荐
- windows环境下VS2008编译程序在有些电脑上执行不了的问题
近期遇到一种情况,在windows下.用vs2008编译程序,在本机(XP系统)能够执行,但放在别的系统上执行不了.这样的情况是因为执行库在别的系统上没有,或许能够安装执行库能解决问题.可是,这样似乎 ...
- node js 调试方法
1. node-debug tutorial 大家对nodejs调试应该都比较头疼,至少我这个不用IDE写js的人很头疼这个,其实node的生态圈非常好 有非常好的工具和非常潮的开发方式 这里总结了3 ...
- express 设置node_env的环境变量
设置process.env.NODE_ENV的环境变量可以用以下2种方式: //在你的app.js文件中设置 process.env.NODE_ENV = 'development'; //在pack ...
- canvas.drawBitmap(bitmap, src, dst, paint)
// GameView.drawImage(canvas, mBitDestTop, miDTX, mBitQQ.getHeight(), mBitDestTop.getWidth(), mBitDe ...
- 某人在企业中遇到的Spark问题记录[持续更新]
https://github.com/ssg-7max/ssg 目前 ssg内公司内部 spark streaming 处理数据源是kafka 目前遇到最大的问题是,会延迟,例如我们配置1分钟让窗口计 ...
- 【转】java中&和&&的区别和联系
[转]http://www.cnblogs.com/hongten/p/hongten_java_yu.html 电路问题总结: 对于:& -- > 不管怎样,都会执行" ...
- 常见电源品牌大揭密(转贴自pceva,作者royalk)
常见电源品牌大揭密(转贴自pceva,作者royalk) 介绍电源品牌代工厂之前,必须介绍一下电源分类: 标准电源 标准电源就是电脑城装机用得最多的电源,性能正常,外观一般,原生接线,也没有什么风扇停 ...
- JSP页面最终是编译为Servlet执行的
JSP页面最终是编译为Servlet执行的,你可以在Tomcat的%CATALINA_HOME%/work/Catalina/localhost中找到一个文件夹,该文件夹跟你的web-project的 ...
- HTML源文件编码的问题
刚才使用sublime text编辑html文件,在html中使用meta tag指定了charset,如下 <meta http-equiv="content-type" ...
- 【Unity笔记】Behaviour Designer的使用方法
Tasks列表 -- Composites选项 Sequence:图标是“箭头”,相当于And逻辑.下接多个子任务,它们从左到右依次执行.所有子任务执行成功,则Sequence返回成功:任一子任务执行 ...