上传脚本中的未定义变量

时间:2012-08-17 16:58:46

标签: php variables upload undefined

我收到以下错误,但我不知道原因。

注意:未定义的索引:在第3行的C:\ xampp \ htdocs \ site \ upload.php上传

注意:未定义的变量:第7行的C:\ xampp \ htdocs \ site \ upload.php中的uploaded_size

注意:未定义的变量:第14行的C:\ xampp \ htdocs \ site \ upload.php中的uploaded_type

注意:未定义索引:在第29行上传到C:\ xampp \ htdocs \ site \ upload.php

我试图在这篇文章中包含php的来源,但不能。 以下是pastebin的链接: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

获取了代码

3 个答案:

答案 0 :(得分:0)

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

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

看看那里有什么。

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

答案 1 :(得分:0)

第一个通知是告诉你这一行:

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

$_FILES数组中没有“上传”索引,因为没有文件上传文件输入名为“上传”的文件。

下一个通知是告诉你这一行:

if ($uploaded_size > 350000) 

您正在访问一个名为$uploaded_size的变量,该变量以前从未被定义过,那么它怎么可能保存一些大于350000的值呢?

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

答案 2 :(得分:0)

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