(1)、在标签中将enctype和method两个属性指明相应的值。

Enctype=”multipart/form-data”; Method=”POST”

(2)、form表单中设置一个hidden类型的input框,其中name的值为MAX_FILE_SIZE的隐藏值

2、服务器端设置:

(1)、$_FILES多维数组:用于存储各种上传文件有关的信息

(2)、文件上传与php配置文件的设置,如以下php.ini文件中的一些指令

指令 默认值 功能描述

file_uploads ON 确定服务器上的PHP脚本是否可以接受HTTP文件上传

memory_limit 8M 设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存

upload_max_file 2M 限制PHP处理上传文件大小的最大值,此值必须小于POST_MAX_SIZE值

post_max_size 8M 限制通过POST方法可以接受信息的最大值

upload_tmp_dir NULL 上传文件的临时路径,可以是一个绝对路径

3、PHP的文件上传及资源指令

file_uploads(boolean)

是否开启HTTP POST文件上传功能

max_execution_time(integer)

PHP脚本最长执行时间

memory_limit(integer) 单位M

PHP脚本运行的最大内存

upload_max_filesize(integer) 单位M

PHP上传文件的最大尺寸

upload_tmp_dir(string)

上传文件存储的临时位置

post_max_size(integer) 单位M

HTTP POST数据的最大尺寸

4、$_FILES数组

$_FILES['userfile'][size]

获取上传文件的字节数

$_FILES['userfile']['type']

获取上传文件的MIME类型,每种MIME类型都是由“/”分隔的主类型和子类型组成

$_FILES['userfile']['error']

获取上传文件的错误代码,0:无任何错误,文件上传成功;1:上传文件大小超出了PHP配置文件中upload_max_filesize选项限定的值;2:上传文件大小超出了HTML表单中MAX_FILE_SIZE指定的值;3:表示文件只被部分上传;4:表示没有上传任何文件。

$_FILES['userfile']['name']

获取上传文件的原始名称,包含扩展名

$_FILES['userfile']['tmp_name']

获取上传文件的临时位置名称,这是存储在临时目录中所指定的文件名。

5、文件上传函数

is_upload_file

判断指定的文件是否是通过HTTP POST上传

bool is_upload_file(string $filename)

move_upload_file

将上传文件移至新位置

bool move_upload_file(string $filename, string $destination)

注意:文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传文件移动到新位置,与copy()和move()相比,它能检测并确保第一个参数filename指定的文件是否是合法上传的文件。

6、错误信息描述

UPLOAD_ERR_OK{value=0}

UPLOAD_ERR_INI_SIZE{value=1}

UPLOAD_ERR_FORM_SIZE{value=2}

UPLOAD_ERR_PARTIAL{value=3}

UPLOAD_ERR_NO_FILE{value=4}

UPLOAD_ERR_NO_TMP_DIR{value=6}

UPLOAD_ERR_CANT_WRITE{value=7}

文档上传下载 php开源,PHP文件的上传下载 - PHP开发学习门户的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. php-ast 开源,PHP AST学习 - osc_ryjlu6z2的个人空间 - OSCHINA - 中文开源技术交流社区...

    前一阵和前同事交流在检测webshell方面的相关方法,其中提出了使用lex yacc做一套语法解析来解析字节码段来判断是否存在webshell. 后来在查找相关资料中,找到了github开源的一个工 ...

  2. linux使用wdm设备驱动模型,驱动开发(WDM) - thomas_more的个人空间 - OSCHINA - 中文开源技术交流社区...

    windows 设备对象名称(内核对象必须命名才能被用户层访问产生句柄) \Driver\ 内核模式下访问 \.\ 用户模式下访问 winObj(symbollink设备名称的别名,各个节点查看)和d ...

  3. 平面设计python教程_什么是平面设计? - Python学习教程的个人空间 - OSCHINA - 中文开源技术交流社区...

    平面设计是什么?  任何一个做平面设计的人,或多或少的会想到这一个问题,在此我不想用过多的语言去解释这个问题,.有一个同行的前辈曾经用一个比较形象的话打了个比方,所谓设计,就是纸本来是包不住火的,但是 ...

  4. java 最小众倍数_c学习 - osc_p1q9onsn的个人空间 - OSCHINA - 中文开源技术交流社区...

    ** 初学C+交流 ** 某次培新题(仅供参考) 1.一般交换机会处于哪一层?( B ) A.物理层 B.数据链路层 C.网络层 D.传输层 2.表示关系上的a>=b>=c的C语言表达式的 ...

  5. C语言包含特殊寄存器文件ch,c语言第二次实验报告 - osc_zfz30hgc的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.实验题目,设计思路,实现方法 题目一:11-4 判断上三角矩阵 编写一个程序,判断一个矩阵是不是上三角矩阵. 问题:循环条件设置不当,导致错误的重复判断,最终导致结果错误. 题目二:12-8 删除 ...

  6. c语言调用json编程,c语言开发JSON - wangxuwei的个人空间 - OSCHINA - 中文开源技术交流社区...

    安装json-c 库 $ sudo apt-get install libjson0-dev libjson0 代码json_test.c #include #include #include #in ...

  7. php七牛分片上传_七牛视频切片方案 - 张小超fly的个人空间 - OSCHINA - 中文开源技术交流社区...

    使用七牛 sdk 上传视频并做分片操作. step1 生成 token const qiniu = require("qiniu"); var accessKey = proc.e ...

  8. c语言 手机图形库,c语言的图形库 - osc_opiar5rp的个人空间 - OSCHINA - 中文开源技术交流社区...

    图形库链接http://www.easyx.cn/ 使用图形库头文件easyx.h或graphics.h 同样在里面下载图形库帮助文档进行查询 vs vc都可使用图形库 图形库窗口: initgrap ...

  9. MySQL如何创建沙箱,沙箱环境搭建 - osc_y8w65yuq的个人空间 - OSCHINA - 中文开源技术交流社区...

    [toc] 测试环境搭建 沙箱环境: -------测试环境搭建 基础配置: # 1.在沙箱环境下实名认证:https://openhome.alipay.com/platform/appDaily. ...

最新文章

  1. git diff的用法
  2. Two conferences重点词汇
  3. 最简单的 Webpack Hello World 例子
  4. php 根据输入值读取MySQL_MySQL输入PHP给出的另一个值
  5. Android Studio(10)---使用 Layout Editor 构建 UI
  6. DevExpress DXperience 的ASPxFilterControl 不显示 Like 菜单的方法
  7. in function ‘int main()’_FIND_IN_SET 及IN 处理逗号间隔的字符串参数
  8. 网络安全实验7 防火墙 Iptables应用
  9. python接受前端传递的参数
  10. [AHK]二维数组总结
  11. python批量查询ip归属地_python查询ip归属地
  12. golang简易版聊天室
  13. 使用OutputDebugString做调试输出
  14. 【生活常识】如何能安逸的活着?
  15. Linux字符驱动设备开发
  16. 【分布式】论文《Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases》
  17. 用python搭建无人车的仿真环境
  18. 产品经理常用的工具推荐
  19. 基于matlab车牌识别程序,基于MATLAB车牌识别系统设计
  20. C语言:给出一百分制成绩,输出成绩等级 ‘A’、’B’、’C’、’D’、’E’。

热门文章

  1. linux系统管理常用命令
  2. python第五十一课——__slots
  3. ASP.NET WebApi 基于分布式Session方式实现Token签名认证
  4. Java接口多线程并发测试 (一)
  5. Django之路——6 Django的模型层(二)
  6. 使用 pv 命令监控 linux 命令的执行进度
  7. Activiti操作数据库中文乱码
  8. Django L6 编写你的第一个Django应用
  9. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业...
  10. 浏览器中Javascript的加载和执行