2009-10-21 156 views
0

這是我的代碼;圖片上傳PHP

<?php 

define ("MAX_SIZE","500"); 

function getExtension($str) { 
     $i = strrpos($str,"."); 
     if (!$i) { return ""; } 
     $l = strlen($str) - $i; 
     $ext = substr($str,$i+1,$l); 
     return $ext; 
} 

$errors=0; 
if(isset($_POST['Submit'])) 
{ 

    $image=$_FILES['image']['name']; 
    if ($image) 
    { 
     $filename = stripslashes($_FILES['image']['name']); 

     $extension = getExtension($filename); 
     $extension = strtolower($extension); 

if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
     { 
     //print error message 
      echo '<h1>Unknown extension!</h1>'; 
      $errors=1; 
     } 
     else 
     { 

$size=filesize($_FILES['image']['tmp_name']); 

if ($size > MAX_SIZE*1024) 
{ 
    echo '<h1>You have exceeded the size limit!</h1>'; 
    $errors=1; 
} 

$image_name=time().'.'.$extension; 
$newname="user_img/".$image_name; 
$copied = copy($_FILES['image']['tmp_name'], $newname); 
if (!$copied) 
{ 
    echo '<h1>Copy unsuccessful!</h1>'; 
    $errors=1; 
}}}} 

if(isset($_POST['Submit']) && !$errors) 
{ 
    echo "<h1>File Uploaded Successfully! Try again!</h1>"; 
} 

?>

這是工作在我的本地正常,但當我上傳的服務器,它不會在所有工作,並沒有表現出任何錯誤也只是顯示不成功的消息。 請告訴我可能是你prolly需要chmod要上傳到該文件夾​​,以獲得適當的權限

你可以做到這一點很容易與FileZilla問題和解決方案 感謝

回答

2

+0

謝謝。這是許可問題。 – 2009-10-21 10:43:11

+0

downvote有什麼用? – Natrium 2009-10-21 10:46:56

+0

抱歉,我錯誤地點擊了。請編輯您的答案,以便我可以再次投票。 – 2009-10-21 10:58:48

0

檢查您的腳本是否在您的主機上運行的用戶有權寫入user_img目錄。

0

可能有幾個方面的問題:

  • 首先確保你已經啓用error_reporting,看他們是否出現
  • 檢查你的PHP設置錯誤:file_uploadsupload_max_filesizedescription
  • 檢查您要寫入文件的文件夾的權限
  • 也嘗試move_uploaded_file函數
0

這可能是一個權限錯誤,請確保您擁有足夠的權限,以便在您編寫映像的目錄中運行php的用戶。另一種可能是您超出了php.ini文件中設置的最大POST大小。

0

你也可以考慮使用絕對路徑,你user_img文件夾這將緩解對於實際的相對路徑的文件夾的任何問題:

$newname="user_img/".$image_name; 

開關:

$newname="/path/to/www/user_img/".$image_name; 
0

除了從檢查文件許可:

  1. I我一直使用move_uploaded_file()而不是copy()
  2. 你的目標文件是「user_img /".$ image_name - 是你的服務器上的相對目錄以及localhost嗎?您可能想要轉換爲完全合格的路徑