上传多个文件 php文件上传,php多个文件及图片上传实例详解

《PHP实战:PHP多个文件及图片上传实例详解》要点:

本文介绍了PHP实战:PHP多个文件及图片上传实例详解,希望对您有用。如果有疑问,可以联系我们。

PHP多个文件及图片上传的办法.分享给大家供大家参考.具体实现办法如下:

文件上传是在单文件上传的基础上利用遍历数组的方式进行遍历表单数组然后把文件一个个上传到服务器上了,下面就来看一个简单多个文件上传实例

文件上传和单独文件上传的处理方式是一样的,只需要在客户端多提供几个类型为“file”的输入表单,并指定不同的“name”属性值.例如,在下面的代码中,可以让用户同时选择三个本地文件一起上传给服务器,客户端的表单如下所示:

代码如下:

多个文件上传表单

选择文件1:

选择文件2:

选择文件3:

在上面的代码中,将三个文件类型的表单以数组的形式组织在一起.当上面的表单教给PHP的脚本文件mul_upload.PHP时,在服务器端同样使用全局数组$_FILES存储所有上述文件的信息,但$_FILES由二维数组已经转变为三维数组,这样就可以存储多个上传文件的信息.在脚本文件mul_upload.PHP中,使用print_r()函数将$_FILES数组中的内容输出,代码如下所示:

代码如下:

//打印三维数组$_FILES中的内容,查看一下存储上传文件的结构

print_r($_FILES);

?>

当选择三个本地文件提交后,输出结果如下所示

代码如下:

Array(

[myfile]=>Array(

[name]=>Array(              //$_FILES["myfile"]["name"]存储所有上传文件的内容

[0]=>Rav.ini         //$_FILES["myfile"]["name"][0]第一个上传文件的名称

[1]=>msgsocm.log     //$_FILES["myfile"]["name"][1]第二个上传文件的名称

[2]=>NOTEPAD.EXE)        //$_FILES["myfile"]["name"][2]第三个上传文件的名称

[type]=>Array(               //$_FILES["myfile"]["type"]存储所有上传文件的类型

[0]=>application/octet-stream          //$_FILES["myfile"]["type"][0]第一个上传文件的类型

[1]=>application/octet-stream          //$_FILES["myfile"]["type"][1]第二个上传文件的类型

[2]=>application/octet-stream)         //$_FILES["myfile"]["type"][2]第三个上传文件的类型

[tmp_name]=>Array(

[0]=>C:/WINDOWS/Temp/PHPAF.tmp

[1]=>C:/WINDOWS/Temp/PHPB0.tmp

[2]=>C:/WINDOWS/Temp/PHPB1.tmp)

[error]=>Array(

[0]=>0

[1]=>0

[2]=>0)

[size]=>Array(

[0]=>64

[1]=>1350

[2]=>66560))

)

通过输出$_FILES数组的值可以看到,处理多个文件的上传和单个文件上传时的情况一样的,只是$_FILES数组的结构形式略有不同.通过这种方式可以支持更多数量的文件上传.

例子如下:

代码如下:

文档上传

动态添加文件选择控件-->

function AddRow()

{

var eNewRow = tblData.insertRow();

for (var i=0;i<1;i++)

{

var eNewCell = eNewRow.insertCell();

eNewCell.innerHTML = "

";

}

}

// -->

" />

文件上传列表

代码如下:

文档上传

动态添加文件选择控件-->

function AddRow()

{

var eNewRow = tblData.insertRow();

for (var i=0;i<1;i++)

{

var eNewCell = eNewRow.insertCell();

eNewCell.innerHTML = "

";

}

}

// -->

" />

文件上传列表

提交文件代码

代码如下:

文件上传结果

if ($_POST["submitfile"]!="")

{

$Path="./".date('Ym')."/";

if (!is_dir($Path))//创建路径

{ mkdir($Path); }

echo "

";

for ($i=0;$i

{ //$_FILES["filelist"]["size"][$i]的排列顺序不可以变,因为fileist是一个二维数组

if ($_FILES["filelist"]["size"][$i]!=0)

{

$File=$Path.date('Ymdhm')."_".$_FILES["filelist"]["name"][$i];

if (move_uploaded_file($_FILES["filelist"]["tmp_name"][$i],$File))

{ echo "文件上传成功 文件类型:".$_FILES["filelist"]["type"][$i]." "."文件名:"

.$_FILES["filelist"]["name"][$i]."
"; }

else

{ echo "文件名:".$_FILES["filelist"]["name"][$i]."上传失败"; }

}

}

echo "

返回
";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值