2012-08-17 25 views
0

我得到以下错误,我不知道为什么。上传脚本中的未定义变量

说明:未定义指数:上传在C:\ XAMPP \ htdocs中\在线网站\ upload.php的3

说明:未定义变量:uploaded_size在C:\ XAMPP \ htdocs中\站点\ upload.php的第7行

说明:未定义变量:uploaded_type在C:\ XAMPP \ htdocs中\在线网站\ upload.php的14

说明:未定义指数:上传在C:\ XAMPP \ htdocs中\站点\上传.php 29行

我试图在本文中包含php的源代码,但不能。 这里是链接引擎收录:My source code

<?php 
$target = "upload/"; 
$target = $target . basename($_FILES['uploaded']['name']) ; 
$ok=1; 

//This is our size condition 
if ($uploaded_size > 350000) 
{ 
echo "Your file is too large.<br>"; 
$ok=0; 
} 

//This is our limit file type condition 
if ($uploaded_type =="text/php") 
{ 
echo "No PHP files<br>"; 
$ok=0; 
} 

//Here we check that $ok was not set to 0 by an error 
if ($ok==0) 
{ 
Echo "Sorry your file was not uploaded"; 
} 

//If everything is ok we try to upload it 
else 
{ 
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
{ 
echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded"; 
} 
else 
{ 
echo "Sorry, there was a problem uploading your file."; 
} 
} 
?> 

编辑1:我从about.com代码about.com

回答

0

1)在$ files数组,有没有定义上传的指标。可能是因为它是$_FILES这是第一个。尝试

<pre> 
print_r($FILES); 
print_r($_FILES); 
</pre> 

看看里面有什么。

2.)¿你在哪里初始化条件中使用的那些变量?您必须从数组中的文件元素提取数据,并在使用它之前将其分配给变量。

0

第一个通知告诉你,在这条线:

$target = $target . basename($_FILES['uploaded']['name']) ; 

没有“上传人指数为$_FILES阵列,因为没有文件是在一个名为上传的文件输入的表单上传。

下一个通知告诉你,在这条线:

if ($uploaded_size > 350000) 

您正在访问一个名为它以前从未被定义$uploaded_size变量,所以它怎么可能举办一些比350000更大的价值?

与接下来的两个通知相同的问题。您似乎缺少一些代码,并且正在测试用于处理上载文件而无需上传文件的代码,或者不使用带有预期的enctype和输入名称的表单。

+0

一切都是正确的。我从about.com得到了代码。我在第一篇文章中附加了链接。请你可以检查一下。 – andrew 2012-08-17 17:13:31

+0

本教程写得不好,缺少代码。这是不正确的,因为你从别人那里复制它。 – 2012-08-18 16:30:35

+0

我发现了另一个教程。认为这是对的,因为它来自这样一个大网站about.com,但显然它不是。谢谢 – andrew 2012-08-18 19:13:41

0

如果您发现$ _FILES数组不包含任何对您上传文件的引用,请确保您的表单标签包含enctype =“multipart/form-data”。