php上传(一)
php上传基础知识总结
1.文件上传 1》文件上传的原理:将客户端上的文件通过浏览器上传到服务器上,
在将服务器上的文件移动到指定目录。 2》客户端的配置
表单页面,浏览框
method='post'
enctype='multipart/form-data' 3》服务器端配置
$_FILES:接受上传文件信息 $_FILES['浏览框名称']['name']->上传文件的名称
$_FILES['浏览框名称']['type']->上传文件的MIME类型
$_FILES['浏览框名称']['tmp_name']->服务器端临时文件名称
$_FILES['浏览框名称']['size']->上传文件的大小,单位是字节
$_FILES['浏览框名称']['error']->上传文件的错误号 上传文件的错误号: 0 或者UPLOAD_ERR_OK:代表没有错误,证明客户端上的文件发送到了服务器端
1或者UPLOAD_ERR_INI_SIZE:超过了PHP配置文件允许上传的文件的最大大小,upload_max_filesize=选项的值
2或者UPLOAD_ERR_FORM_SIZE:超过了表单中限制上传文件的最大大小,超过了MAX_FILE_SIZE选项的值
3或者UPLOAD_ERR_PARTIAL:文件部分被上传
4或者UPLOAD_ERR_NO_FILE:没有选择上传文件
6或者UPLOAD_ERR_NO_TMP_DIR:没有找到临时目录
7或者UPLOAD_ERR_CANT_WRITE:目录不能写
8或者UPLOAD_ERR_EXTENSION:由于PHP扩展程序中断了文件上传 和文件上传有关的配置信息:
file_uploads = On,是否支持通过HTTP形式上传文件
upload_tmp_dir =上传文件的临时目录
upload_max_filesize = 2M,设置上传文件的最大大小
post_max_size = 8M,设置表单以POST形式发送数据的最大值
max_file_uploads = 20,一次最多可以上传多少个文件
$_FILES是空数组,上传文件为Array()数组的情况,没有接到上传文件信息的可能:
1》表单中method 和enctype
2》file_uploads是否开启 bool move_uploaded_file($tmp_name,$destination):将服务器端的临时文件移动指定目录下,
叫什么名字;移动成功,返回true,失败false 3》上传文件限制
客户端限制
限制上传文件大小
<input type='hidden' name='MAX_FILE_SIZE' value='文件大小,单位字节'/> 限制上传文件类型
<input type='file' name='myFile' accept='上传文件的MIME类型,多个类型之间以,分隔'/> 常用的文件的MIME类型
扩展名 MIME类型
jpg/jpeg image/jpeg
gif image/gif
png image/png
html text/html
txt text/plain
pdf application/pdf
在客户端上做的限制,可以绕过 服务器端限制
限制上传文件的大小
限制上传文件的类型
限制是否是通过HTTP POST方式上传的
检测是否是真实图片 //1.接收信息 //2.判断错误号(有错误的话匹配错误) //3.检测上传文件的大小 //4.检测上传文件的类型 //5.检测文件是否通过HTTP POST方式上传上来的 //6.最后移动文件
php上传(一)的更多相关文章
- Asp.Net Mvc 使用WebUploader 多图片上传
来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...
- PHP搭建大文件切割分块上传功能
背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示"该文件过大".因为一般情况下,我们都需要对上传的文件大小做限制,防止出现 ...
- jquery.uploadify文件上传组件
1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...
- 如何在nuget上传自己的包+搭建自己公司的NuGet服务器(新方法)
运维相关:http://www.cnblogs.com/dunitian/p/4822808.html#iis 先注册一个nuget账号https://www.nuget.org/ 下载并安装一下Nu ...
- 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传
LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...
- 百度 flash html5自切换 多文件异步上传控件webuploader基本用法
双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...
- input[tyle="file"]样式修改及上传文件名显示
默认的上传样式我们总觉得不太好看,根据需求总想改成和上下结构统一的风格…… 实现方法和思路: 1.在input元素外加a超链接标签 2.给a标签设置按钮样式 3.设置input[type='file' ...
- 11、Struts2 的文件上传和下载
文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...
- IE8/9 JQuery.Ajax 上传文件无效
IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...
- JS图片上传预览插件制作(兼容到IE6)
其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方 ...
随机推荐
- C# System.Windows.Forms.Panel
UserControl 定义的界面 输出到panel 实现界面切换
- classmethod和staticmethod
假设有这么一个 class class Date(object): def __init__(self, day=0, month=0, year=0): self.day = day self.mo ...
- vue组件实例的生命周期
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Spring data JPA 快速入门
1需求 向客户中插入一条数据 如果使用Jpa框架可以不用先建表 可以使用框架生成表 2 实现步骤 a 创建工程 使用maven管理工程 <properties> ...
- Yii2 Composer
首先你必须得在本机配置token账号,里边涉及到一些git的用法,git的托管等等,具体方法如下: http://www.cnblogs.com/fnng/archive/2011/08/25/215 ...
- 【LeetCode 1】两数之和
描述 [题解] 用个map的话就是O(N)级别的了. [代码] class Solution { public: unordered_map<int,int> mymap; vector& ...
- AcWing 143. 最大异或对 01字典树打卡
在给定的N个整数A1,A2……ANA1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N. 第二行输入N个整数A1A1-ANAN. 输出格式 输出一 ...
- docker镜像下载加速(5)
镜像下载加速 由于 Docker Hub 的服务器在国外,下载镜像会比较慢.幸好 DaoCloud 为我们提供了免费的国内镜像服务. 下面介绍如果使用镜像. 在 daocloud.io 免费注册一个用 ...
- GitHub 万星推荐:黑客成长技术清单
GitHub 万星推荐:黑客成长技术清单 导语:如果你需要一些安全入门引导,“Awesome Hacking”无疑是最佳选择之一. 最近两天,在reddit安全板块和Twitter上有个GitHub项 ...
- Collection Lists
ArrayList LinkedList Vector 顺序添加 抽象数据类型(ADT)是一个实现包括储存数据元素的存储结构以及实现基本操作的算法. ArrayList (1)ArrayList是 ...