2014-03-19 134 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