2013-10-11 16 views
1

我,马总PHP新手,我昨天了解到阵列和我的老板让我写一个PHP的形式,我发现了一个在W3学校,结束了与PHP上传的形式给予了错误

<html> 
<body> 
    <form action="upload_file.php" method="post" enctype="multipart/form-data"> 
     <label for="file">Filename:</label> 
     <input type="file" name="file" id="file"><br> 
     <input type="submit" name="submit" value="Submit"> 
    </form> 
</body> 
</html> 

<?php 
$allowedEXTs = array("jpeg", "jpg", "png"); 
$temp = explode(".", $_FILES["file"]["name"]); 
$extension = end ($temp); 
if ((($_FILES["file"] ["type"] == "image/jpeg") 
    || ($_FILES ["file"] ["type"] == "image/jpg") 
    || ($_FILES ["file"] ["type"] == "image/png")) 
    && ($_FILES ["file"] ["size"] < 10240) 
    && in_array($extension, $allowedExts)) 
{ 
    if ($_FILES["file"] ["error"] > 0) 
    { 
     echo "Error: " . $_Files["file"] ["error"] . "<br>"; 
    } 
    else 
    { 
     echo "Upload: " . $_FILES ["file"] ["name"] . "<br>"; 
     echo "Type: " . $_FILES ["file"] ["name"] . "<br>"; 
     echo "Size: " . $_FILES ["file"] ["size"]/10240 . " kB<br>"; 
     echo "Stored in:" . $_FILES ["file"] ["tmp_name"]; 
    } 
    if (file_exists("upload/" . $_FILES["file"]["name"])) 
    { 
     echo $_FILES ["file"] ["name"] . "already exists."; 
    } 
    else 
    { 
     move_uploaded_files ($_FILES ["file"]["tmp_name"], "upload/" . $_FILES ["file"] ["name"]); 
    } 
} 
else 
{ 
    echo "Invalid file"; 
} 
?> 

我基本上不知道这是为什么扔了“警告:in_array()预计参数2是阵列,在空假设”为错误,任何人都可以伸出援助之手?

+0

在'in_array()'是不是一个数组,所以你得到这个错误。 – Dinesh

+0

,到目前为止的工作,那么这个错误想出了致命错误:调用未定义功能move_uploaded_files()在 – Chetan

+0

这是因为该函数是'move_uploaded_file()以' –

回答

3
$allowedEXTs = array("jpeg", "jpg", "png"); 

声明如下,

&& in_array($extension, $allowedExts)) 

这样调用,

您有宣称它 “EXTS”,把它作为“EXTS” ... 因此错误。

1

您定义一个与

$allowedEXTs = array("jpeg", "jpg", "png"); 

数组,然后用

&& in_array($extension, $allowedExts)) 

把它确保的情况下每次调用可变的时间是一样的。


同样的,此行应该是$_FILES

echo "Error: " . $_Files["file"] ["error"] . "<br>"; 
0

你声明与$ allowedEXTs数组,但它是在if语句拼写小。