PHP图片文件上传类型限制扩展名限制大小限制与自动检测目录创建。
程序测试网址:http://blog.z88j.com/fileuploadexample/index.html
代码分为两部分:
一部分form表单:
<!doctype html>
<html>
<head>
<title>文件上传案例-file upload example</title>
<meta http-equiv="content-type" contnet="text/html" charset="utf-8"/>
</head>
<body>
<h1>文件上传支持图片.gif.png.jpg.jpeg限制200kb大小的文件</h1>
<form method="POST" action="upload_file.php" enctype="multipart/form-data">
<lable for="file">File:</lable>
<input name="file" type="file" id="file"/><br/>
<input type="submit" value="上传文件"/>
</form>
</body>
</html>
二部分PHP后台上传验证程序:
<meta charset="utf-8"/>
<?php
$array=array("gif","png","jpg","jpeg");//赋值一个数组
$tmp=explode(".",$_FILES['file']['name']);//用explode()函数把字符串打散成为数组。
$extension=end($tmp);//用end获取数组最后一个元素
if($_FILES['file']['error']>0){//判断提交上的文件是否为空或错误
echo "文件未选择,或非法文件!错误:".$_FILES['file']['error'];
}else{
if((($_FILES['file']['type']=="image/gif")//判断提交上的文件的文件类型是否正确和文件扩展名是否正确,文件大小是否超2048kb。
||($_FILES['file']['type']=="image/png")
||($_FILES['file']['type']=="image/jpeg")
||($_FILES['file']['type']=="image/jpg")
||($_FILES['file']['type']=="image/pjpeg")
||($_FILES['file']['type']=="image/x-png"))
&&($_FILES['file']['size']<204800)
&&in_array($extension,$array)){
echo "文件大小和文件扩展名验成功!<br/>";
if(file_exists("upload/")){//用file_exists函数检测是否有upload目录,用if判断。
if(file_exists("upload/".$_FILES['file']['name'])){//用file_exists函数检测是否在upload目录下有['name']文件。用if判断。
echo "已存在该文件名!位置:upload/".$_FILES['file']['name'];
}else{//显示各个信息,然后用move_upload_file函数把临时目录文件移动到upload目录。
echo "上传完成,下面是信息:<br/>";
echo "上传文件名:".$_FILES['file']['name']."<br/>";
echo "上传类型:".$_FILES['file']['type']."<br/>";
echo "上传文件大小:".$_FILES['file']['size']."<br/>";
echo "上传文件临时缓存位置:".$_FILES['file']['tmp_name']."<br/>";
move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);//这里我们用到两个参数,一是被移到的文件,二是移动到的目标位置。
echo "储存服务器相对的位置为:/upload/".$_FILES['file']['name'];
}
}else{//没有目录的情况下,使用mkdir函数创建upload目录。
echo "不存在upload目录,已自动创建upload/目录";
mkdir("upload");
}
}else{
echo "扩展名和文件大小不正确,扩展名支持gif,jpg,png,jpeg,文件大小支持200kb";
}
//echo "文件临时储存的位置:".$_FILES['file']['tmp_name'];//把文件获取到临时储存的位置里面,并打印出来;
//move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);//把临时储存的文件移到upload目录下。
}
?>
后台PHP程序经过四次if判断进行四次判断上传的文件:
第一次if判断上传的文件是否空提交或者是否有错误。
第二次if判断上传的文件类型是否正确,扩展名是否匹配,大小是否合理。
第三次if判断上传的文件,所属的目录是否存在,假设不存在,系统会自动用mkdir函数创建一个upload目录;
第四次if判断上传的文件是否已存在,假设存在会进行提示并停止上传。相反如果不存在会进行上传操作;
PHP图片文件上传类型限制扩展名限制大小限制与自动检测目录创建。的更多相关文章
- Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下: $config['upload_path'] = './uploads/'; $config[ ...
- SpringMvc MultipartFile 图片文件上传
spring-servlet.xml <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipar ...
- .Net Core 图片文件上传下载
当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...
- SSH—网上商城之商品图片文件上传
前言 网上商城中的淘宝图片要显示在页面的前提是图片应该已经在数据库里面,那么怎么实现图片的上传功能呢,这就是今天要说的主题. 内容 需求: 商城后台需要添加图片文件,用来图片显示 解决方式: Stru ...
- springmvc图片文件上传接口
springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...
- input file实现多选,限制文件上传类型,图片上传前预览功能
限制上传类型 & 多选:① accept 属性只能与 <input type="file" /> 配合使用.它规定能够通过文件上传进行提交的文件类型. ② mu ...
- SpringMvc commons-fileupload图片/文件上传
简介 SpringMvc文件上传的实现,是由commons-fileupload这个jar包实现的. 需求 在修改商品页面,添加上传商品图片功能. Maven依赖包 pom.xml <!-- 文 ...
- PHP代码篇(五)--如何将图片文件上传到另外一台服务上
说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问 ...
- PHP 图片文件上传代码
通过 PHP,可以把文件上传到服务器.里面加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件. 为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的 ...
随机推荐
- Java使用java命令运行程序出现:找不到主类错误
这是配置环境的问题. 在classpath里面添加 .; 即:点+分号 为什么呢,点代表当前目录.
- Android源码之Matrix
Matrix类在Android中主要用来进行矩阵变换,其可操作的对象包括图像.点阵.Vector(向量).矩形等. Matrix支持的变换类型主要有以下几种: 1.Translate:平移变换 2.R ...
- [LeetCode#218] The Skyline Problem
Problem: A city's skyline is the outer contour of the silhouette formed by all the buildings in that ...
- JavaScript实现网页背景自动变色
JavaScript实现网页背景自动变色,自己变换颜色,设定时间和颜色值即可,在你设定的颜色值.一定时间内自动切换网页背景颜色. <!DOCTYPE HTML PUBLIC "-//W ...
- 【好文转载c++】 sizeof 使用的经典总结
为了在人面前畅快的吹牛逼,你必须学会背后努力 -----张小二. 写在转载之前: sizeof到底是多少?本来我没有关注,只是有次室友问了我几个sizeof的问题,我被问住了,他当时问我了sizeo ...
- ldr指令总结
LDR/STR字和无符号字节加载/存储 1,LDR Rd,[Rn] 2, LDR Rd,[Rn,Flexoffset] 3, LDR Rd,[Rn],Flexoffset 4, LDR Rd,la ...
- C++11的资源管理:泛化的RAII
RAII被认为是c++资源管理的最佳范式,但是c++98中用RAII必须为要管理的资源写一个类,这样一来RAII的使用就有些繁琐了.C++11有了lambda和function后,我们就可以编写泛化的 ...
- 从源码编译rpi的内核
Kernel Building https://www.raspberrypi.org/documentation/linux/kernel/building.md There are two mai ...
- 【转】tmux入门指南
按照官方说明,tmux是一个终端复用软件.我接触tmux也就是这几天的事情,但已经发现其强大.作为一个文艺程序员,有必要向大家分享一下,这么好的东东怎敢藏着掖着. 先用起来再说 假设你已经装好tmux ...
- 322. Coin Change
动态规划里例题,硬币问题. p[i] = dp[i - coin[j]] + 1; 注意i < coin[j] dp[i-coin[j]]无解都要跳过. public class Solutio ...