Home >Backend Development >PHP Tutorial >一个关于文件上传的页面.遇到错误.求大神指导指导

一个关于文件上传的页面.遇到错误.求大神指导指导

WBOY
WBOYOriginal
2016-06-23 14:05:371000browse

<!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>upload.</title><style type="text/css"><!--.STYLE2 {	font-family: "宋体";	font-weight: bold;}--></style></head><body><style type="text/css"><!--tr,td{font-size:10px}--></style><center>	<h1 class="STYLE2">upload your file</h1>	<p>	<table border="1" cellspacing="0" cellpadding="1" bordercolordark="#ffffff" bordercolorlight="#0000ff" width="400">	<form action="up_back.php" method="post" enctype="multipart/form-data">	<tr bgcolor="#ccccff">	<td>chose your file:</td>	<td><input type="file" name="upfile" size=32 /></td>	</tr>	<tr>	<td>describe:</td>	<td><input type="text" name="describe" size="42" /></td>	</tr>	<tr>	<td>owner:</td>	<td><input type="text" name="owner" size="42" /></td>	</tr>	<tr>	<td>submit:</td>	<td><center><input type="submit" value="submit" /></center></td>	</tr>	</form>	</table>	</p></center>		</body></html>

这个是用来前台的页面调用下面的php.
<?phpif (!$_POST["upfile"]&&$_FILES["upfile"]["name"]==""){	echo "no file<p>";	echo "click<a href=\"up_forward.html\">there</a>return!";}else {	$filepath="upload/";	$name=$filepath.$_FILES["upload"]["name"];	while (file_exists($name))	{		$temp=explode(".", $name);		$name=$temp[0]."0".".".$temp[1];	}	if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $name))	{		if ($_POST["owner"])		{			$owner=$_POST["owner"];		}		else 		{			$owner="NULL";		}		if ($_POST["describe"])		{			$describe=$_POST["describe"];		}		else		{			$describe="NONE";		}		$time=date("y-m-d H:m:s");		$content=$_FILES["upload"]["name"]."||".$owner."||".$describe."||".$time."\n";		file_put_contents("record.dat", $content.FILE_APPEND);		echo "name:".$_FILES["upfile"]["name"];		echo "<p>";		echo "is upload successfull.<p>";		echo "click<a href=\"up_forward.html\">there</a>return!";	}	else 	{		echo "upload error!<p>";		echo "fail!<p>";		echo "click<a href=\"index.php\">there</a>check!";	}}?>

问题就在于上传之后,提示文件上传成功,但是upload文件夹里面文件名是0的倍数,而且没有文件格式..这个是怎么回事呢?


提示的错误就是下面这些..
Notice: Undefined index: upfile in D:\phpnow\htdocs\b\up_back.php on line 2

Notice: Undefined index: upload in D:\phpnow\htdocs\b\up_back.php on line 10

Notice: Undefined offset: 1 in D:\phpnow\htdocs\b\up_back.php on line 14

Notice: Undefined index: upload in D:\phpnow\htdocs\b\up_back.php on line 35
name:10.jpg


回复讨论(解决方案)

这一行 $name=$filepath.$_FILES["upload"]["name"];
第一个文件上传的name="file" , 没有"upload" 啊.

move_uploaded_file($_FILES["upfile"]["tmp_name"], $name) 后面参数没有带路径

move_uploaded_file($_FILES["upfile"]["tmp_name"], $name) 后面参数没有带路径

他的$name=$filepath.$_FILES["upfile"]["name"];就是这个

1.
if (!$_POST["upfile"]&&$_FILES["upfile"]["name"]=="")
==>
if ($_FILES["upfile"]["name"]=="")   //这样就能判断是否选择文件了

2.
$name=$filepath.$_FILES["upload"]["name"];
==》
$name=$filepath.$_FILES["upfile"]["name"];

3. 如果你的文件存在了。while循环不就成了死循环了吗,可以改为:
if(file_exists($name))
    {
        $temp=explode(".", $name);
        $name=$temp[0]."0".".".$temp[1];
    }
4.      $content=$_FILES[" upfile"]["name"]."||".$owner."||".$describe."||".$time."\n";

1.
if (!$_POST["upfile"]&&$_FILES["upfile"]["name"]=="")
==>
if ($_FILES["upfile"]["name"]=="")   //这样就能判断是否选择文件了

2.
$name=$filepath.$_FILES["upload"]["name"];
==》
$name=$filepath.$_……
谢谢你的帮助,根据这样修改后,确实完成了模块功能...万分感谢.

这一行 $name=$filepath.$_FILES["upload"]["name"];
第一个文件上传的name="file" , 没有"upload" 啊.
恩,确实这里有点毛病.谢谢你

1.
if (!$_POST["upfile"]&&$_FILES["upfile"]["name"]=="")
==>
if ($_FILES["upfile"]["name"]=="")   //这样就能判断是否选择文件了

2.
$name=$filepath.$_FILES["upload"]["name"];
==》
$name=……
大神级人物   受教了

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn