文件上传原理

将客户端的文件上传到服务器,再将服务器的临时文件上传到指定目录

客户端配置

提交表单

表单的发送方式为post

添加enctype="multipart/form-data"

服务器端配置(推荐学习:PHP编程从入门到精通)

file_uploads = On,支持HTTP上传

uoload_tmp_dir = ,临时文件保存目录

upload_max_filesize = 2M,允许上传文件的最大值

max_file_uploads = 20 ,允许一次上传到的最大文件数

post_max_size = 8M,post方式发送数据的最大值

max_execution_time = -1,设置了脚本被解析器终止之前允许的最大执行时间,单位为秒,防止程序写的不好而占尽服务器资源。-1代表无穷

max_input_time = 60 ,脚本解析输入数据允许的最大时间,单位为秒

max_input_nesting_level = 64 ,设置输入变量的嵌套深度

max_input_vars_ = 1000,接受多少输入的变量(限制分别应用于$_GET、$_POST和$_COOKIE超全局变量,将会导致E_WARNING的产生,更多的输入变量将会从请求中截断。

memory_limit = 128M,最大单线程的独立内存使用量。也就是一个web请求,给予线程最大的内存使用量的定义

错误信息说明

UPLOAD_ERR_OK:其值为0,没有错误发生,文件上传成功

UPLOAD_ERR_INI_SIZE:其值为1,上传的文件超过了php.ini中upload_max_filesize选项限制的值

UPLOAD_ERR_FORM_SIZE:其值为2,上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值

UPLOAD_ERR_PARTIAL:其值为3,文件只有部分被上传

UPLOAD_ERR_NO_FILE:其值为4,没有文件被上传

UPLOAD_ERR_NO_TMP_DIR:其值为6,找不到临时文件夹

UPLOAD_ERR_CANT_WRITE:其值为7,文件写入失败

UPLOAD_ERR_EXTENSION:其值为8,上传的文件被PHP扩展程序中断

客户端限制

通过表单隐藏域限制文件上传文件的最大值

通过accept属性限制上传文件类型

在客户端的限制,用户可在网页上修改代码后上传,故无实际意义。应在服务器端加以限制

限制上传文件的大小

限制上传文件类型

检测是否为真实图片类型

检测是否为HTTP POST方式上传

PHP 表单文件上传的原理,php上传文件的原理相关推荐

  1. Python Day 67 Dango框架图解(总结)、Wsgiref和uwsgi、前后端传输数据的编码格式、From表单和Ajax方式在前端往后端发送文件、补充一下页面清缓存...

    ##Django框架图解 ##前后端传输数据的编码格式 #前后端传输数据的编码格式1.urlencoded 2.formdata 3.application/json ##From表单和Ajax方式在 ...

  2. form表单通过request取不到值multipart/form-data 文件上传表单中传 递参数无法获取的原因!

    1.什么是multipart/form-data 首先我们需要明白在html中的enctype属性,  enctype:规定了form表单在发送到服务器时候编码方式.他有如下的三个值.  ①appli ...

  3. Java根据PDF表单模板和CSV表格批量生成证书等文件

    最近遇到需求,需要批量生成800+个证书,所以写了一个简单个工具,原理就是PDF表单,读取csv表格中的数据,然后批量生成,比较通用的一个工具,所以分享一下 import com.itextpdf.t ...

  4. 【HTML】HTML 表单 ② ( 按钮表单 | 普通按钮 | 提交按钮 | 重置按钮 | 图片按钮 | 文件域 )

    文章目录 一.按钮表单 1.普通按钮 2.提交按钮 3.重置按钮 4.图片按钮 二.文件域 一.按钮表单 1.普通按钮 将 <input /> 标签 的 type 属性设置为 button ...

  5. php怎么上传函数,PHP单文件上传原理及上传函数的封装操作示例

    搜索热词 @H_404_0@本文实例讲述了PHP单文件上传原理及上传函数的封装操作.分享给大家供大家参考,具体如下: @H_404_0@表单: @H_404_0@0.PHP: 无标题文档 请选择您要上 ...

  6. php 打包上传的文件,PHP单文件上传原理及上传函数的打包

    PHP单文件上传原理及上传函数的封装 服务器(临时文件)-->指定目录,当文件进入服务器时它就是临时文件了,这时操作中要用临时文件的名称tmp_name.//在客户端设置上传文件的限制(文件类型 ...

  7. 一、PHP基础——表单传值、上传文件

    表单传值 概念: 表单传值即浏览器通过表单元素将用户的选择或者输入的数据提交给后台服务器语言. 为什么使用表单传值? 动态网站(Web2.0)的特点就是后台根据用户的需求定制数据,所谓的"需 ...

  8. WebApi发送HTML表单数据:文件上传与多部分MIME

    5.3 Sending HTML Form Data 5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/28 ...

  9. (转)WebApi发送HTML表单数据:文件上传与多部分MIME

    5.3 Sending HTML Form Data 5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/28 ...

  10. 表单和servlet在idea中实现文件的上传

    1.前端jsp的搭建. 通过type=file的input标签就可以选择要上传的文件,当submit提交表单的时候就可以将选定的文件以流的形式提交.要注意的技术细节就是表单中有上传文件功能时,必须显式 ...

最新文章

  1. document.location的用法实例(摘抄自博客园--KoMiles,自己学习的时候记录一下)...
  2. 基于XMPP协议的aSmack源码分析
  3. java web mysql树形结构_用JAVA写的树结构代码 - WEB源码|JSP源码/Java|源代码 - 源码中国...
  4. matlab 提取数列里非零_什么!科研交流免费教Matlab?
  5. (原创)speex与wav格式音频文件的互相转换(二)
  6. 全国计算机等级考试题库二级C操作题100套(第35套)
  7. Entity Framework Core生成的存储过程在MySQL中需要进行处理及PMC中的常用命令
  8. 二叉树的一些leetcode题目+python(c++)
  9. 和docket的第一次亲密接触
  10. Halcon PDF文档(hdevelop_users_guide)学习总结之二——创建新算子
  11. Bug--Tomcat Error start child
  12. AD16查看不同层并修改走线(一般也就两层
  13. 多线程访问导致崩溃一例
  14. Vivaldi 更新至 1.9,新的搜索引擎及各种功能修复
  15. 添加购物车功能全部代码
  16. 使用MATLAB绘制Smith圆图
  17. 签到活动 测试要点分析
  18. 虚拟机中安装配置Windows server 2003和iis6
  19. 从一个广告读懂华为云
  20. 云夜卡社区源码v4.2 带总控

热门文章

  1. CVPR 2021接收结果出炉!录用1663篇,接受率显著提升,你的论文中了吗?(附论文下载)...
  2. ICRA2019 | 用于移动设备的双目立体匹配
  3. webpack 配置 babel
  4. RDKit2018.03.3+Win10(64位):ImportError: DLL load failed: 找不到指定的模块。
  5. K-d tree 算法
  6. MonkeyRunner的使用二
  7. FM:西南民大朱英等-肠道菌群研究促进了朱鹮的迁地保护
  8. QIIME 2教程. 29参考数据库DataResources(2020.11)
  9. R语言ggplot2可视化:可视化华夫饼图(Waffle Chart) 、华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例、华夫饼图适合于同类型指标的比较(Waffle Chart)
  10. pandas将dataframe中的年、月、日数据列合并成完整日期字符串、并使用to_datetime将字符串格式转化为日期格式