2014-03-19 87 views
0

文件上传在Windows中使用xampp,但在将其移至生产centos服务器时无法正常工作。它抛出“无效文件”错误。这是我使用的代码:PHP文件上传在Linux服务器中不起作用

<?php 
    $allowedExts = array("gif", "jpeg", "jpg", "png"); 
    $temp = explode(".", $_FILES["file"]["name"]); 
    $extension = end($temp); 
    if ((($_FILES["file"]["type"] == "image/gif") 
    || ($_FILES["file"]["type"] == "image/jpeg") 
    || ($_FILES["file"]["type"] == "image/jpg") 
    || ($_FILES["file"]["type"] == "image/pjpeg") 
    || ($_FILES["file"]["type"] == "image/x-png") 
    || ($_FILES["file"]["type"] == "image/png")) 
    && ($_FILES["file"]["size"] < 20000) 
    && in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 

if (file_exists("upload/" . $_FILES["file"]["name"])) 
    { 
    echo $_FILES["file"]["name"] . " already exists. "; 
    } 
else 
    { 
    move_uploaded_file($_FILES["file"]["tmp_name"], 
    "upload/" . $_FILES["file"]["name"]); 
    echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 
    } 
    } 
    } 
else 
{ 
echo "Invalid file"; 
} 
?> 

是否有人可以帮我这个........

+1

检查上传文件夹是否在生产服务器上具有写权限。 –

+0

,并检查enctype =“multipart/form-data”是否设置为您的表单标记。 – ripa

+0

@AbhikChakraborty该文件夹拥有777权限 – winnyboy5

回答

3

与下面的线替换以下行

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); 

move_uploaded_file($_FILES["file"]["name"], "upload/" . $_FILES["file"]["name"]); 

它会解决您的问题。

+0

的代码工作,但没有文件上传 – winnyboy5

+0

@ winnyboy5这是你正面临的问题是权限问题。检查http://www.projectpier.org/node/285 – ripa

+0

,并检查http://stackoverflow.com/questions/3787680/php-upload-permission-problem – ripa