程序测试网址: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图片文件上传类型限制扩展名限制大小限制与自动检测目录创建。的更多相关文章

  1. Codeigniter文件上传类型不匹配错误

    Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下:   $config['upload_path'] = './uploads/'; $config[ ...

  2. SpringMvc MultipartFile 图片文件上传

    spring-servlet.xml <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipar ...

  3. .Net Core 图片文件上传下载

    当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...

  4. SSH—网上商城之商品图片文件上传

    前言 网上商城中的淘宝图片要显示在页面的前提是图片应该已经在数据库里面,那么怎么实现图片的上传功能呢,这就是今天要说的主题. 内容 需求: 商城后台需要添加图片文件,用来图片显示 解决方式: Stru ...

  5. springmvc图片文件上传接口

    springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller; import java.awt.image.Buffer ...

  6. input file实现多选,限制文件上传类型,图片上传前预览功能

    限制上传类型 & 多选:① accept 属性只能与 <input type="file" /> 配合使用.它规定能够通过文件上传进行提交的文件类型. ② mu ...

  7. SpringMvc commons-fileupload图片/文件上传

    简介 SpringMvc文件上传的实现,是由commons-fileupload这个jar包实现的. 需求 在修改商品页面,添加上传商品图片功能. Maven依赖包 pom.xml <!-- 文 ...

  8. PHP代码篇(五)--如何将图片文件上传到另外一台服务上

    说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问 ...

  9. PHP 图片文件上传代码

    通过 PHP,可以把文件上传到服务器.里面加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件. 为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的 ...

随机推荐

  1. Python Web 性能和压力测试 multi-mechanize

    http://www.aikaiyuan.com/5318.html 对Web服务做Performance & Load测试,最常见的工具有Apache Benchmark俗称ab和商用工具L ...

  2. CAS单点登录配置[5]:测试与总结

    终于要结束了... 测试 1 我们同时打开Tomcat6和Tomcat7,如果报错请修改. 打 开浏览器,输入http://fighting.com/Client1,进入CAS登录界面,这里我们先输入 ...

  3. 【HDOJ】2707 Steganography

    简单字符串,读懂题,很容易AC. #include <stdio.h> #include <string.h> ], line[], des[]; int main() { i ...

  4. bzoj2342

    shoi题目好坑爹 首先自己测发现这道题如果用后缀数组+rmq处理每个点回文串能延伸长度的话会TLE (当然我用的是倍增+ST的方法,如果用三分构建后缀数组+笛卡尔树处理rmq我就不知道了): 关于最 ...

  5. 用sql语句写排名

    使用SQL语句求排名 表jh03有下列数据: name score aa 99 bb 56 cc 56 dd 77 ee 78 ff 76 gg 78 ff 50 1. 名次生成方式1 , Score ...

  6. 【转】iOS开发:开发证书知识点总结

    原文网址:http://www.jianshu.com/p/9c166a5e4930 1. Error: An App ID with identifier "*" is not ...

  7. 约瑟夫环的java实现

    转自:http://www.cnblogs.com/timeng/p/3335162.html 约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到 ...

  8. tcp/ip体系-转载

    如果还想在测试这条路上继续走下去的话,那么下面这些东西就是我们必须去掌握的,至少你还不想止步于简单的黑盒测试--其实,一直想去接触Linux下的应用测试,这样能学到东西会很多,而且会非常的受用.之前听 ...

  9. 如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题

    为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE字符开头.这作为一个”特征符”或”字节顺序标记(byte-o ...

  10. [LeetCode] 73. Set Matrix Zeroes 解题思路

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. Follow ...