介绍
这篇文章将为大家详细讲解有关php中上传文件的方式有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
有两种:
1,标准输入表单方式,典型的用带有_file美元进行接收;
2,以Base64的方式进行传送,一般是AJAX异步上传。
<强>第一种强>
标准的输入表单方式,适用于大文件进行上传,同时支持批量. html代码关键的几句:
& lt; form enctype=岸嗖糠?form-data",方法=皃ost", action=皍pload.php"“比; & lt;才能input 类型=癴ile", name=癷d_pic[]“,接受=巴枷?*“,类=癴orm-control", multiple /比; & lt;才能input 类型=皊ubmit",价值=https://www.yisu.com/zixun/鄙洗?/> 形式>
不同的名字时:
& lt; form enctype=岸嗖糠?form-data",方法=皃ost", action=皍pload.php"“比; & lt;才能input 类型=癴ile", name=癷d_pic_1",接受=巴枷?*“,类=癴orm-control",/比; & lt;才能input 类型=癴ile", name=癷d_pic_2",接受=巴枷?*“,类=癴orm-control",/比; & lt;才能input 类型=皊ubmit",价值=https://www.yisu.com/zixun/鄙洗?/> 形式>
其中enctype=岸嗖糠?form-data"对于文件上传是必不可少的。另外类型=癴ile"设置输入类型,接受=巴枷?*“指定优先上传图片(MIME参考手册).multiple支持一次选多个文件,图片[]以数组的形式接收多个文件。手机端端还可以加入参数捕获=癱amera"选择摄像头拍照上传。
后端处理:
通过带有_file美元获取上传的文件。
<强>文件=带有_file美元;
强>传多个文件时,如果的名字不同,则返回美元的带有_file数组格式不同。
名称相同时:
数组(1),{ ,(“id_pic")=祝辞,数组(5),{ (“name")才能,=祝辞,数组(2),{ ,,[0],=祝辞,字符串(5),“1. jpg" ,,[1],=祝辞,字符串(5),“2. jpg" ,,} (“type")才能,=祝辞,数组(2),{ ,,[0],=祝辞,字符串(10),“图像/jpeg" ,,[1],=祝辞,字符串(10),“图像/jpeg" ,,} (“tmp_name")才能,=祝辞,数组(2),{ ,,[0],=祝辞,字符串(27),“C: \ Windows \ Temp \ php7A7E.tmp" ,,[1],=祝辞,字符串(27),“C: \ Windows \ Temp \ php7A7F.tmp" ,,} (“error")才能,=祝辞,数组(2),{ ,,[0],=祝辞,int (0) ,,[1],=祝辞,int (0) ,,} (“size")才能,=祝辞,数组(2),{ ,,[0],=祝辞,int (77357) ,,[1],=祝辞,int (56720) ,,} ,} }
名称不相同时:
,,,数组(2),{ ,(“id_pic_1")=祝辞,数组(5),{ (“name")才能,=祝辞,字符串(5),“1. jpg" (“type")才能,=祝辞,字符串(10),“图像/jpeg" (“tmp_name")才能,=祝辞,字符串(27),“C: \ Windows \ Temp \ phpBBEE.tmp" (“error")才能,=祝辞,int (0) (“size")才能,=祝辞,int (77357) ,} ,(“id_pic_2")=祝辞,数组(5),{ (“name")才能,=祝辞,字符串(5),“2. jpg" (“type")才能,=祝辞,字符串(10),“图像/jpeg" (“tmp_name")才能,=祝辞,字符串(27),“C: \ Windows \ Temp \ phpBBEF.tmp" (“error")才能,=祝辞,int (0) (“size")才能,=祝辞,int (56720) ,} }
在对带有_file美元进行foreach遍历时,前面那种输出格式不大方便。后面那种就可以直接遍历。我们可以写个方法进行统一转换:
function dealFiles(文件),{ ,,,fileArray 美元;=,数组(); n 美元,,,,,,,,=,0; ,,,foreach (files 美元;as 关键=美元在美元文件){ ,,,,,如果(is_array($文件[& # 39;名字# 39;])),{ ,,,,,,,keys 美元;,,,=,,中的($文件); ,,,,,,,count 美元;,,=,,count($文件[& # 39;名字# 39;]); ,,,,,,,for (i=0;美元,美元i<数美元;,我+ +美元),{ ,,,,,,,,,美元fileArray [$ n][& # 39;关键# 39;],=,美元的关键; ,,,,,,,,,foreach (keys 美元;as  _key美元){ ,,,,,,,,,,,美元fileArray [$ n] [_key美元],=,美元文件[_key美元][$ i]; ,,,,,,,,,} ,,,,,,,,,$ n + +; null null null null null null null null null nullphp中上传文件的方式有哪些