php中上传文件的方式有哪些

  介绍

这篇文章将为大家详细讲解有关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   null

php中上传文件的方式有哪些