php文件上传相关知识点回顾
近来正在回顾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文件上传相关知识点回顾的更多相关文章
- PHP文件上传相关
1.必须通过POST提交 2. 声明 enctype="multipart/form-data" $_FILES {[pic]=array ( [name]=> ...
- WebService文件上传相关配置(404.13、超出限制、超时)
最近在做文件上传的功能,遇到一些问题,记录如下,以备以后使用. 1.HTTP Error 404.13 - Not Found,请求筛选模块被配置为拒绝超过请求内容长度的请求. IIS默认允许请求长度 ...
- 文件上传相关报错: The current request is not a multipart request或is a MultipartResolver configured?
1:from中涉及到图片上传的就要用post提交方式.否则就会报这个错误. 2:第一中:在jsp页面的<head></head>标签里面加上<meta http-equi ...
- 补习系列(11)-springboot 文件上传原理
目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...
- 11、Struts2 的文件上传和下载
文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...
- 深入springMVC源码------文件上传源码解析(下篇)
在上篇<深入springMVC------文件上传源码解析(上篇) >中,介绍了springmvc文件上传相关.那么本篇呢,将进一步介绍springmvc 上传文件的效率问题. 相信大部分 ...
- PHP实现文件上传
一.关于全局变量$_FILES $_FILES包含有所有上传的文件信息.假设文件上传字段的名称为 img.则 $_FILES['img']['name']:客户端上传的文件的原名称. $_FILES[ ...
- php文件上传参考配置与大文件上传
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的,在php文件上传之前,可通过调节php.ini中相关配置指令,来控制上传相关细节. 1.file_uploads=on/off ...
- php实现文件上传下载功能小结
文件的上传与下载是项目中必不可少的模块,也是php最基础的模块之一,大多数php框架中都封装了关于上传和下载的功能,不过对于原生的上传下载还是需要了解一下的.基本思路是通过form表单post方式实现 ...
随机推荐
- 《简明 Python 教程》笔记
基础 字符串:python 中字符串可以用单引号.双引号和三个引号括起来,其中三个引号可以用来指定多行的字符串. print('hello'* 3) 连续打印 3 个 hello 格式化:print ...
- [Angular] Increasing Performance by using Pipe
For example you make a function to get rating; getRating(score: number): string { let rating: string ...
- 《编程导论(Java)·2.1.2 啊,我看到了多态》-什么是多态(polymorphism)
1.不明觉厉 很多人学习多态时,会认为. 之所以不明觉厉,由于多态的定义:事物存在的多种表现形态:而后,有人将重载(overload).改写(override).多态变量和泛型归结于同一个术语&quo ...
- 从编程的角度理解gradle脚本﹘﹘Android Studio脚本构建和编程[魅族Degao]
本篇文章由嵌入式企鹅圈原创团队.魅族资深project师degao撰写. 随着Android 开发环境从Eclipse转向Android Studio,我们每一个人都開始或多或少要接触gradle脚本 ...
- OpenStack开发基础-oslo.config
The cfg Module cfg Module来自于OpenStack中的重要的基础组件oslo.config,通过cfg Module能够用来通过命令行或者是配置文件来配置一些options,对 ...
- Linux学习笔记:什么是x86
什么是x86 和硬件打交道常常会听说x86,疑惑的时候自己翻过书上网查过资料.可是都不甚明白.近期再次遇到x86这个词,随具体了解并做笔记记录. 想要知道什么是x86应该先区分CPU的分类. CPU ...
- Linux下安装JRE和Eclipse IDE for C/C++ Developers
Linux32位,下载eclipse-cpp-luna-R-linux-gtk.tar.gz和jre-8u11-linux-i586.rpm 放到家文件夹中. http://www.eclipse. ...
- 2016.04.11,英语,《Vocabulary Builder》Unit 12
umbr, from the Latin umbra, 'shadow', umbrella, -ella, 'little', means 'little shadow'. adumbrate: [ ...
- Codeforces Round #349 (Div. 2) C. Reberland Linguistics DP+set
C. Reberland Linguistics First-rate specialists graduate from Berland State Institute of Peace a ...
- bzoj2819: Nim(博弈+树剖)
2819: Nim 题目:传送门 题解: 很久之前学博弈的时候看过的一道水题,其实算不上博弈吧... 直接套上一个裸的树剖啊,把路径上的点值全都xor(xor满足结合率所以就不管那么多随便搞啦) do ...