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方式实现 ...
随机推荐
- POJ 1654
不知 是怎么看出的精度不够,吸经验吧. #include <iostream> #include <cstdio> #include <cstring> #incl ...
- 关于TRIANGLE二维三角网格生成器在windows下的配置说明
近期须要用到三角网格生成的一些东西,所以就把TRIANGLE这个库编译了一下,发现编译过程还是略微有些纠结,于是就想到写下来.希望以后有些童鞋看到少走一些弯路. 首先很感谢eryar的帮助,很感谢! ...
- swift+moya URLCahe
1.定义获取缓存策略的接口 import Foundation protocol CachePolicyGettable { var cachePolicy: URLRequest.CachePoli ...
- luogu1771 方程的解
题目大意 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数),x,k是给定的数.我们要求的是这个不定 ...
- GIS中mybatis_CMEU的配置方法
基本常用功能预览: 生成实体类(可以自定义:get/set,有参无参构造方法,自定义类型与属性,序列化等); 生成dao层接口(查询全部信息,通过ID查询信息,插入全部属性,插入不为空的属性,通过ID ...
- vs2013+ffmpeg开发环境搭建【转】
本文转载自:http://blog.csdn.net/spaceyqy/article/details/43115391 每当看到配环境,我就泪流满面,好吧,闲话不多说,进入正题. 1.去官方下载ff ...
- spring框架spring之HibernateTemplate
转自:https://blog.csdn.net/acmman/article/details/44652207
- curl ,post,get (原创)
curl get: 1)直接输出 $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"http://testopen.api.yaolan.com/a ...
- php获取前天的昨天的日期
在PHP里得到前天和昨天的日期的代码前天去面试的时候也是这样,不过我当时记不起来了.就记得MYSQL里面的date_sub(now(),'interval 1 day');date('Y/m/d h: ...
- 【NOIP2011 Day 2】观光公交
[问题描述] 小城Y市,拥有n个景点.由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0分钟出现在1号景点,随后依次前往2.3.4……n号景点.从第 ...