PHP中的文件上传
一、上传文件的表单的HTML结构长什么样的?
关键点:
1、提交的方式必须是POST
2、Enctype属性指定为multipart/form-data
3、Input类型指定为file
这样就完成一个提交单个文件的表单的HTML结构了
二、后台PHP怎么获取我提交的文件数据?
提交的文件的相关信息并不在$_POST数组里面,而是$_FILES;
服务器运行结果如下:
提交的文件会被临时存放在服务器的临时目录:
之后通过php的函数将其移动到目标文件夹,以下是具体的逻辑(函数的具体作用请自行查找手册)
三、多文件上传的三种的做法
1、多input,name值不同
后台接收到的数据:
2、多input,name值相同
后台接收到的数据:
3、单input指定multiple属性(H5新属性)
后台接受到数据:
区别:
1、带有mutiple属性的input表单所提交的文件的数据结构和没有带multiple的多input表单所提交的文件的数据结构是一样的
2、多input,name值不同的表单所提交的文件的数据结构与1所提及的数据结构是不一样的
文件数据结构不同如何兼容?
使用适配器模式实现数据结构的转换(实现之前要先弄懂两者之间数据结构的差异点):
四、封装一个具有文件上传功能的函数
参数说明:
具体实现:
五、总结
1、想要实现表单上传,你的HTML代码必须正确
2、实现多文件上传之前,先实现单文件上传的功能
3、要实现文件数据结构的兼容转换,必先弄清两者数据结构上的差异点在哪,方可解决问题