文件上传原理

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

客户端配置

提交表单

表单的发送方式为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扩展程序中断

客户端限制

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

1

<input type='hidden' name='MAX_FILE_SIZE' VALUE='字节数' />

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

1

<input type='file' name='myFile' accept='文件的MIME类型' />

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

限制上传文件的大小

限制上传文件类型

检测是否为真实图片类型

检测是否为HTTP POST方式上传

最新文章

  1. android UI 仿 win 8 模块化 标题,并实现 可长按拖动交换图片位置、可点击,且伴随动画特效
  2. 修复ext4日志(jbd2)bug( Ext4 文件系统有以下 Bug)
  3. 【iOS】Quartz2D绘图路径Path
  4. c# 参数传递
  5. 关于iOS7 上下黑条解决办法
  6. .net类库中和数据库相关的
  7. 沉浸式学 Git
  8. Thymeleaf Javascript 取值
  9. 关于SQL的一些小知识
  10. C++STL(vector,map,set,list)成员函数整理
  11. JAVA:一篇文章理清多态
  12. t-sql语句创建表(基础)
  13. per-CPU变量
  14. Gulp压缩前端CS,JS,图片文件
  15. Netty源码分析之服务端启动
  16. eclipse中如何在当前工程中查找一个字符串
  17. 【转】xhEditor技术手册 网页编辑器基础教程
  18. 【虚拟机ubuntu设置ssh】ssh连不上问题解决方法
  19. nodejs npm 使用淘宝 NPM 镜像
  20. 多线程情况下HashMap死循环的问题

热门文章

  1. 使用thumbnailator给图片加水印
  2. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_2_编码引出的问题_FileReader读取GBK格式文件
  3. Delphi MlSkin V1.1 发布啦! 它能让你的程序拥有像QQ一样多彩炫丽的外观!
  4. 应用安全-安全设备-Waf系列-软Waf-安全狗(Safedog)
  5. MyBatis Generator 生成的example 使用 and or 简单混合查询
  6. AtCoder Beginner Contest 133-C - Remainder Minimization 2019
  7. JS正则的补充,与其他前端组件的使用(easUi、jqueryUi、bootstrap、)
  8. Linux延时执行命令at
  9. 如果存在这个表,则删除这个表的sql
  10. 初步理解React