求助关于php文件上传
按教程做了两个文件上传的程序第一个可以用,第二个却无法实现上传[color=Red]第一个的代码:[/color]
文件提交:index.php
-------------------------------------------------------------------------------------------------------------------------------------------
[code]<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="10000000">
<center>请选择文件:<input name="userfile" type="file">
<input type="submit" value="上传文件">
</center>
</form>[/code]
表单处理:upload.php
[code]<?php
$uploaddir = 'F:/APMServ5.2.0/www/htdocs/wjsc/uploads/mm/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print"<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{print "上传成功!如下是调试信息:\n";
print_r($_FILES);}
else{print "上传失败!如下是调试信息:\n";
print_r($_FILES);}
print"</pre>"
?>[/code]
-----------------------------------------------------------------------------------------------------------------------
第二个程序
文件上传+表单处理 index2.php
[code]<?php
if(!$UploadAction):
//判断是上载界面还是实现界面,如果是上载界面,显示下面的html页面
?>
<HTML>
<HEAD>
<TITLE>文件上载界面</TITLE>
</HEAD>
<BODY>
<TABLE>
<CENTER>
<form enctype="multipart/form-data" name="SubmitForm" action="index2.php" method="post">
<INPUT type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<INPUT TYPE="hidden" NAME="UploadAction" VALUE= "1" />
<TR> <TD>
<INPUT name="UploadFile" type="file" size="30" />
</TD> </TR>
<TR> <TD>
<INPUT name="submit" value="提交" type="submit" />
</TD> <TD>
<INPUT name="reset" value="重置" type="reset" />
</TD> </TR>
</form>
</CENTER>
</TABLE>
</BODY>
</HTML>
<?php
else:
//如果是实现页面,显示下面的HTML页面,并激活PHP脚本
?>
<HTML>
<HEAD>
<TITLE>文件上载代码</TITLE>
</HEAD>
<BODY>
<?php
$UploadAction=0;
//初始化UploadAction的状态
$TimeLimit=60;
//设置超时的限制时间,缺省时间为30秒,设置为0时为不限时,这里设置的是60秒
set_time_limit($TimeLimit);
//设置超时显示的时间
$uploaddir = '/uploads/';
//上载的文件存放路径
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
//上载的文件名
$tmpfile = $_FILES['userfile']['tmp_name'];
//临时文件
$file_size = $_FILES['userfile']['size'];
//上载文件大小
$errno = $_FILES['userfile']['error'];
If(($tmpfile != "none") && ($tmpfile != ""))
{
if($file_size <1024)
//上载文件大小
{
$strFileSize = (string)$file_size . "B";
//对于小于1K的文件,以字节来显示文件大小
}
elseif($file_size <(1024*1024)) // < 1MB
{
$strFileSize = number_format((double)($file_size/ 1024), 1) . "KB";
//对大于1K并且小于1M的文件,以字节来显示文件大小
}
else
{
$strFileSize = number_format((double)($file_size/ (1024*1024)), 1) . "MB";
//对于大于M的文件,用M字节来显示文件大小
//不过,由于MAX_FILE_SIZE限制了上载文件的最大为1000000,还不到1M
//因此大于1M的文件都将被忽略掉
}
if(!file_exists($uploadfile)) //如果在指定的位置,文件并不存在,继续上传
{
if(move_uploaded_file($tmpfile, $uploadfile)) //将上载的文件移动到指定的位置
{
echo "文件 $uploadfile (strFileSize)上传成功!";
}
else
{
echo "文件 $uploadfile 上载失败!(错误号:$errno)";
}
}
else //如果在指定的位置,已经存在了上载的文件,提示结束
{
echo "文件 $uploadfile 已经存在!(错误号:$errno)";
}
}
else
//如果没有选择文件进行上传,或者上载的文件大小超过了MAX_FILE_SIZE,提示,结束
{
echo "你还没有选择任何文件上载,或者上载的文件超出了 $MAX_FILE_SIZE !";
}
set_time_limit(30);
//居处缺省的超时设置
?>
<BR><A HREF = "index2.php">返回</A>
</BODY></HTML>
<?php
endif;
?>
[/code] 多文件上传的时候只能传第二个
[code]<form action="upload1.php" method="post" enctype="multipart/form-data">
请选择文件:<p>
<input name="userfile[]" type="file"><br>
<input name="userfile[]" type="file"><p>
<input type="submit" value="上传文件">
</form>[/code]
[code]<?php
$uploaddir = './uploads/';
print"<pre>";
for($i=0; $i<sizeof($_FILES['userfile']['tmp_name']); $i++)
{
$tmpfile = $_FILES['userfile']['tmp_name'][$i];
$uploadfile = $uploaddir. $_FILES['userfile']['name'][$i];
}
if (move_uploaded_file($tmpfile, $uploadfile))
{print "$uploadfile 上传成功?如下是调试信息:\n";
print_r($_FILES);}
else{print "$uploadfile 上传失败!如下是调试信息:\n";
print_r($_FILES);
}
print"</pre>"
?>[/code]
页:
[1]