近来正在回顾PHP的文件上传。在此做个记录。


<?php
date_default_timezone_set('PRC');
if(isset($_POST['submit'])) {
echo "<pre>";
var_dump($_FILES['file']);
echo "</pre>"; //获取文件后缀名方法一:
//将文件名以“.”为界限分割为数组
//end函数对于数组,取数组中的最后一个元素
$ext = end(explode(".", $_FILES['file']['name'])); //获取文件后缀名方法二:
//找出文件名中的点所在位置,截取此位置后的字符串
//$extpos = strrpos($_FILES['file']['name'],'.');
//$ext = substr($_FILES['file']['name'], $extpos+1);
//echo "文件后缀名为 :" . $ext; //设置可上传的文件类型
$allowType = [
"gif", "jpeg", "jpg", "png"
];
//检测上传文件是否支持
if (!in_array($ext, $allowType)) {
die("请选择正确的文件格式上传");
} else {
//以年月日时分秒命名上传文件
$filename = date("YmdHis", time()) . ".".$ext;
//以年-月-日命名上传文件夹,保存同一日上传的文件
$directory = "uploads"."/".date("Y-m-d", time());
//检测目标文件目录是否存在
if (!is_dir($directory)) {
//不存在则创建文件夹
mkdir ($directory,0777,true);
//将临时文件保存到当天目录下
move_uploaded_file($_FILES['file']['tmp_name'], $directory . "/" . $filename);
} else {
//检测目标文件夹中是否已存在该文件
if (!file_exists()) {
//不存在则将临时文件保存到指定目录下
move_uploaded_file($_FILES['file']['tmp_name'], $directory . "/" . $filename);
}else{
die("该文件已经存在");
}
}
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传作业</title>
<style type="text/css">
table{border:0;cellspacing: 0;cellpadding:0}
table tr td{text-align: center;height: 25px;line-height: 25px;width: 200px; border: 1px solid darkolivegreen;}
</style>
</head>
<body>
<form action="homework.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>请选择文件</td>
<td><input type="file" name="file"></td>
<td><input type="submit" name="submit"></td>
</tr>
</table>
</form>
</body>
</html>

原文地址:https://segmentfault.com/a/1190000016359542

php文件上传相关知识点回顾的更多相关文章

  1. PHP文件上传相关

    1.必须通过POST提交 2. 声明 enctype="multipart/form-data"   $_FILES {[pic]=array ( [name]=>     ...

  2. WebService文件上传相关配置(404.13、超出限制、超时)

    最近在做文件上传的功能,遇到一些问题,记录如下,以备以后使用. 1.HTTP Error 404.13 - Not Found,请求筛选模块被配置为拒绝超过请求内容长度的请求. IIS默认允许请求长度 ...

  3. 文件上传相关报错: The current request is not a multipart request或is a MultipartResolver configured?

    1:from中涉及到图片上传的就要用post提交方式.否则就会报这个错误. 2:第一中:在jsp页面的<head></head>标签里面加上<meta http-equi ...

  4. 补习系列(11)-springboot 文件上传原理

    目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...

  5. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  6. 深入springMVC源码------文件上传源码解析(下篇)

    在上篇<深入springMVC------文件上传源码解析(上篇) >中,介绍了springmvc文件上传相关.那么本篇呢,将进一步介绍springmvc 上传文件的效率问题. 相信大部分 ...

  7. PHP实现文件上传

    一.关于全局变量$_FILES $_FILES包含有所有上传的文件信息.假设文件上传字段的名称为 img.则 $_FILES['img']['name']:客户端上传的文件的原名称. $_FILES[ ...

  8. php文件上传参考配置与大文件上传

      PHP用超级全局变量数组$_FILES来记录文件上传相关信息的,在php文件上传之前,可通过调节php.ini中相关配置指令,来控制上传相关细节. 1.file_uploads=on/off   ...

  9. php实现文件上传下载功能小结

    文件的上传与下载是项目中必不可少的模块,也是php最基础的模块之一,大多数php框架中都封装了关于上传和下载的功能,不过对于原生的上传下载还是需要了解一下的.基本思路是通过form表单post方式实现 ...

随机推荐

  1. HDU 2295

    二分答案+重复覆盖.注意返回的条件哦,不能光套模板. #include <iostream> #include <cstdio> #include <cstring> ...

  2. HDU 4510

    省一等,保研. #include <iostream> #include <cstdio> #include <cstring> #include <algo ...

  3. HDU 1515

    简单题,直接用STACK模拟整个过程. 模拟出栈时,应注意保护现场,等到递归完成后返回. #include <iostream> #include <string.h> #in ...

  4. Heat-AutoScaling

    在openstack的I版本号中,Heat中加入了对于AutoScaling资源的支持,github上也提供了相应的AutoScaling的模板,同一时候也支持使用ceilometer的alarm来触 ...

  5. 利用scrapy抓取网易新闻并将其存储在mongoDB

    好久没有写爬虫了,写一个scrapy的小爬爬来抓取网易新闻,代码原型是github上的一个爬虫,近期也看了一点mongoDB.顺便小用一下.体验一下NoSQL是什么感觉.言归正传啊.scrapy爬虫主 ...

  6. oc4--方法

    // main.m // 第一个OC类-方法2 #import <Foundation/Foundation.h> // 1.编写类的声明 @interface Iphone : NSOb ...

  7. 在android中读写文件

    在android中读写文件 android中只有一个盘,正斜杠/代表根目录. 我们常见的SDK的位置为:/mnt/sdcard 两种最常见的数据存储方式: 一.内存 二.本地 1.手机内部存储 2.外 ...

  8. B1012 [JSOI2008]最大数maxnumber 分块||RMQ

    这个题有毒,卡最大值...我开1 << 30爆零让我以为我分块错了...gg,然后去写RMQ,但是这个题st表是真简单啊.后来刘胜与巨佬一眼看出来我最大值不够大...然后1LL<&l ...

  9. 第18章 Redis数据结构常用命令

    18-1 字符串的一些基本命令 18-1 :配置Spring关于Redis字符串的运行环境 <bean id="poolConfig" class="redis.c ...

  10. new一个接口

    首先我们先看看接口的定义: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方 ...