php 实现多文件上传程序代码

最简单的实例如下

 代码如下 复制代码

<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>

       <?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
            $name = $_FILES["pictures"]["name"][$key];
            move_uploaded_file($tmp_name, "data/$name");
        }
}
?>

 

下面分享其它朋友的例子
例1

 代码如下 复制代码

<?
//filename:multi_upload.php
if($ifupload)
{
$path=AddSlashes(dirname($PATH_TRANSLATED))."\upload\";
for($i=1;$i<=8;$i++)
{
$files="afile".$i;
if(${$files}!="none")
{
if(copy(${$files},$path.${$files."_name"}))
{
}
}
}
print "<b>You have uploaded files successfully</b><br>";
print "<a href="multi_upload.php">Return</a>";
exit;
}
?>
<html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<title>多个文件上传</title>
<style type="text/css">
<!--
BODY
{
PADDING-RIGHT: 0px;
MARGIN-TOP: 0px;
PADDING-LEFT: 0px;
FONT-SIZE: 8px;
MARGIN-LEFT: 0px;
CURSOR: default;
COLOR: black;
MARGIN-RIGHT: 0px;
PADDING-TOP: 0px;
FONT-FAMILY: Arial;
BACKGROUND-COLOR: transparent;
TEXT-ALIGN: center
}
.TxtInput
{
FONT-SIZE: 8pt;
WIDTH: 100%;
CURSOR: default;
COLOR: black;
FONT-FAMILY: Arial;
HEIGHT: 21px;
BACKGROUND-COLOR: white;
TEXT-ALIGN: left
}
.FieldLabel
{
FONT-WEIGHT: normal;
FONT-SIZE: 9pt;
WIDTH: 100%;
COLOR: black;
FONT-FAMILY: Arial;
BACKGROUND-COLOR: transparent;
TEXT-ALIGN: left
}
.HeadBtn
{
BORDER-RIGHT: black 1px solid;
BORDER-TOP: white 1px solid;
FONT-SIZE: 8pt;
OVERFLOW: hidden;
BORDER-LEFT: white 1px solid;
WIDTH: 70px;
COLOR: black;
BORDER-BOTTOM: black 1px solid;
FONT-FAMILY: Arial;
HEIGHT: 21px;
BACKGROUND-COLOR: #8e8dcd;
TEXT-ALIGN: center
}
.TransEx
{
BORDER-RIGHT: black 1px solid;
PADDING-RIGHT: 8px;
BORDER-TOP: white 1px solid;
PADDING-LEFT: 8px;
FONT-SIZE: 8pt;
PADDING-BOTTOM: 3px;
BORDER-LEFT: white 1px solid;
WIDTH: 720px;
PADDING-TOP: 3px;
BORDER-BOTTOM: black 1px solid;
FONT-FAMILY: Arial;
BACKGROUND-COLOR: #c0c0c0;
TEXT-ALIGN: center
}
-->
</style>
<script language="javascript">
function window.onload()
{
document.forms[0].btnOk.onclick=btn_ok;
}
function btn_ok()
{
for(var i=1;i<=8;i++)
{
if(eval("document.forms[0].afile"+i+".value!=''"))
document.forms[0].submit();
return true;
}
alert("None of file have been selected");
return false;
}
</script>
</head>
<body>
<form method="post" action="multi_upload.php" name="frmUpload" enctype="multipart/form-data" >
<table id="divContainer" style="HEIGHT: 100%; WIDTH: 380" border="0">
<tr height="35"><td align="right" valign="bottom">多文件上传 </td></tr>
<tr><td align="center" valign="top">
<table class="Transex" border="0" cellspacing="0" cellpadding="0" style="WIDTH: 360px">
<tr style="HEIGHT: 10px" >
<td style="WIDTH: 5px"></td>
<td colspan="2"></td>
<td style="WIDTH: 5px"></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件1</label></td>
<td><input type="file" class="TxtInput" tabindex="1" name="afile1" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件2</label></td>
<td><input type="file" class="TxtInput" tabindex="2" name="afile2" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件3</label></td>
<td><input type="file" class="TxtInput" tabindex="3" name="afile3" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件4</label></td>
<td><input type="file" class="TxtInput" tabindex="4" name="afile4" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件5</label></td>
<td><input type="file" class="TxtInput" tabindex="5" name="afile5" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件6</label></td>
<td><input type="file" class="TxtInput" tabindex="6" name="afile6" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件7</label></td>
<td><input type="file" class="TxtInput" tabindex="7" name="afile7" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr>
<td></td>
<td nowrap><label class="FieldLabel"> 文件8</label></td>
<td><input type="file" class="TxtInput" tabindex="8" name="afile8" style="WIDTH: 282px"></td>
<td></td>
</tr>
<tr style="HEIGHT: 5px">
<td style="WIDTH: 5px">
<td style="WIDTH: 350px" colspan="2"><hr width="100%"></td>
<td style="WIDTH: 5px"></td>
</tr>
<tr>
<td></td>
<td colspan="2" align="left">
<button tabindex="5" class="headbtn" align="center" name="btnOk" id="btnOk" accesskey="O">确定(<ins>O</ins>)</button>
<input type="hidden" name="ifupload" value=1>
<button tabindex="5" class="headbtn" align="center" name="btnCancel" id="btnCancel" accesskey="C" onclick="window.close();">取消(<ins>C</ins>)</button></td>
<td></td>
</tr>
<tr style="HEIGHT: 5px">
<td style="WIDTH: 5px">
<td style="WIDTH: 350px" colspan="2"></td>
<td style="WIDTH: 5px"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>

如果我们要动态不确定性的多文件上传怎么实现下面也有实例

文件上传代码

 代码如下 复制代码
view plaincopy to clipboardprint?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>文档上传</title>
</head>
<body>
<script language="javascript"><!--
动态添加文件选择控件-->
function AddRow()
{
var eNewRow = tblData.insertRow();
for (var i=0;i<1;i++)
{
var eNewCell = eNewRow.insertCell();
eNewCell.innerHTML = "<tr><td><input type='file' name='filelist[]' size='50'/></td></tr>";
}
}
// --></script>
<form name="myform" method="post" action="uploadfile.php" enctype="multipart/form-data" >
<table id="tblData" width="400" border="0">
<!-- 将上传文件必须用post的方法和enctype="multipart/form-data" -->
<!-- 将本页的网址传给uploadfile.php-->
<input name="postadd" type="hidden" value="<?php echo "http://".$_SERVER['HTTP_HOST'].$_SERVER["PHP_SELF"]; ?>" />
<tr><td>文件上传列表
<input type="button" name="addfile" onclick="AddRow()" value="添加列表" /></td></tr>
<!-- filelist[]必须是一个数组-->
<tr><td><input type="file" name="filelist[]" size="50" /></td></tr>
</table>
<input type="submit" name="submitfile" value="提交文件" />
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>文档上传</title>
</head>
<body>
<script language="javascript"><!--
动态添加文件选择控件-->
function AddRow()
{
var eNewRow = tblData.insertRow();
for (var i=0;i<1;i++)
{
var eNewCell = eNewRow.insertCell();
eNewCell.innerHTML = "<tr><td><input type='file' name='filelist[]' size='50'/></td></tr>";
}
}
// --></script>
<form name="myform" method="post" action="uploadfile.php" enctype="multipart/form-data" >
<table id="tblData" width="400" border="0">
<!-- 将上传文件必须用post的方法和enctype="multipart/form-data" -->
<!-- 将本页的网址传给uploadfile.php-->
<input name="postadd" type="hidden" value="<?php echo "http://".$_SERVER['HTTP_HOST'].$_SERVER["PHP_SELF"]; ?>" />
<tr><td>文件上传列表
<input type="button" name="addfile" onclick="AddRow()" value="添加列表" /></td></tr>
<!-- filelist[]必须是一个数组-->
<tr><td><input type="file" name="filelist[]" size="50" /></td></tr>
</table>
<input type="submit" name="submitfile" value="提交文件" />
</form>
</body>
</html>
提交文件代码
view plaincopy to clipboardprint?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>文件上传结果</title>
</head>
<body>
<?php
if ($_POST["submitfile"]!="")
{
$Path="./".date('Ym')."/";
if (!is_dir($Path))//创建路径
{ mkdir($Path); }
echo "<div>";
for ($i=0;$i<count($filelist);$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]."<br>"; }
else
{ echo "文件名:".$_FILES["filelist"]["name"][$i]."上传失败</br>"; }
}
}
echo "</div><br><a href="$postadd" href="$postadd">返回</a></div>";
}
?>
</body>
</html>

另:错误信息说明
从 PHP 4.2.0 开始,PHP 将随文件信息数组一起返回一个对应的错误代码。该代码可以在文件上传时生成的文件数组中的 error 字段中被找到,也就是 $_FILES['userfile']['error']。
UPLOAD_ERR_OK
其值为 0,没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL
其值为 3,文件只有部分被上传。
UPLOAD_ERR_NO_FILE
其值为 4,没有文件被上传。
UPLOAD_ERR_NO_TMP_DIR
其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
UPLOAD_ERR_CANT_WRITE
其值为 7,文件写入失败。PHP 5.1.0 引进。
注意: 以上值在 PHP 4.3.0 之后变成了 PHP 常量。

时间: 2024-11-06 03:49:10

php 实现多文件上传程序代码的相关文章

php中实现图片文件上传程序代码

我们先来看一下项目结构图与数据库结构图吧 项目结构: 运行效果:   up.html 简单的上传表单文件  代码如下 复制代码 <form action="up.php" enctype="multipart/form-data" method="post"      name="uploadfile">上传文件:<input type="file" name="upfile&q

实现ASP.NET多文件上传程序代码_实用技巧

upload.aspx 复制代码 代码如下: <%@ Page language="c#" Codebehind="UpLoad.aspx.cs" AutoEventWireup="false" Inherits="WebPortal.Upload" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

php无刷新文件上传程序代码

在一个网站项目中,为了得到更好的用户体验,很多地方都要处理成异步无刷新的效果.此文件上传范例是利用一个隐藏的框架iframe做桥梁,实现主体页面上传文件无刷新的效果. 其实本范例也不是真正的异步效果,但是也是可以达到无刷新效果的.而且这种方法是实现php无刷新上传文件最快捷,最简单的方法,所以何乐而不为呢. html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

struts2 文件上传程序代码

简介 由于今天做个一个项目有关文件上传内容,业务逻辑是这样的,选择一个文件上传到服务器,然后把文件名称,上传时间,上传用户以及备注存储到服务器,并且提供一个web页面进行管理. 开发环境: 架构:使用struts2+mybatis框架,以及前台使用easyUI框架进行开发. 数据库:mysql 前台html代码: 注意: 在编写form 表单的时候一定要注意加上这句话 ==enctype="multipart/form-data"==,声明此表单可以上传文件,在开发中很容易遗漏,以至于

基于jQuery Ajax PHP文件上传程序代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"         "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <meta http-equiv=&q

php多文件上传 多图片上传程序代码

文件上传例子  代码如下 复制代码 <?php header('content-type:text/html;charset=utf-8'); require('uploadFile.php'); if(isset($_POST['submit'])){ $uploads = $_FILES['file']; $num_file = count($uploads['name']); $up = new UploadFile($uploads,'uploads',1024); $num = $up

超简单的php文件上传程序

 代码如下 复制代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

php图片文件上传实例代码

 代码如下 复制代码 <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <title>php教程图片文件上传实例代码</title> </head> <body> &

PHP中codeigniter文件上传类代码实例

  codeigniter文件上传类代码实例 文件上传类 CodeIgniter 的文件上传类允许文件被上传.您可以设置指定上传某类型的文件及指定大小的文件. 处理过程 上传文件普遍的过程: 一个上传文件用的表单,允许用户选择一个文件并上传它. 当这个表单被提交,该文件被上传到指定的目录. 同时,该文件将被验证是否符合您设定的要求. 一旦文件上传成功,还要返回一个上传成功的确认窗口. 这里有一个简短的教程来显示这个过程.此后你将会找到相关的参考信息. 创建上传表单 运用文本编辑器创建一个名为up