2012-05-15 69 views
0

請幫助我,這裏是我的代碼:的文件是不是從臨時移動到文件夾上傳

if(isset($_POST['send'])) { 
    $filename =strtolower(basename($_FILES['resume']['name'])); 
    $ext = $_FILES["resume"]["type"]; 
    $size= $_FILES["resume"]["size"]; 

    if (!empty($filename) && (($ext == "application/msword") || 
     ($ext == "application/pdf") && ($size < 500000))) { 
     $name = $_POST['name']; 
     $email_address = $_POST['email']; 
     $nwname=str_replace(" ","",$name); 
     $newfilename= substr(md5(rand() * time()),0,7); 
     $newfilename2 =$nwname."_".$newfilename; 
     if($ext == 'application/msword') { 
      $newname ='upload/'.$newfilename2.".doc"; 
     } else if($ext == 'application/pdf'){ 
      $newname ='upload/'.$newfilename2.".pdf"; 
     } 
     $temp= $_FILES['resume']['tmp_name']; 
     echo $temp; 

     $move = @move_uploaded_file($temp,$newname) 
        or die('Updoaling error.'); 
     echo $move; 

     $query = mysql_query("UPDATE saxet SET filelocation='$newname' 
      WHERE name='$name' AND email='$email_address'"); 
    } 
} 

我的名稱爲「$filename」沒有移動到臨時文件夾中的文件。可以幫助我嗎?

+0

從顯示錯誤消息開始並從調用move_uploaded_file中刪除'@' –

+0

刪除@move_uploaded_file($ temp,$ newname)中的@以查看錯誤(如果有)。 – Adam

+0

可能有這麼多的可能性..但要檢查,你可以echo $ temp和$ newname。如果他們正確地來了,那麼你的代碼應該工作。也刪除@從move_uploaded_file –

回答

0

我想你應該檢查在上傳文件夾上寫入文件的權限。

+0

我檢查並上傳文件夾是可寫的。 – user1396112

+0

對於其他太多,檢查它必須是777 –

+0

是的臨時文件夾也是可寫的 – user1396112

0

我建議使用is_writable()函數來確定目標是否可寫,然後將上傳的文件移動到那裏。

另外,@error control operator。它可以抑制來自move_uploaded_file()的錯誤。任何時候當你使用@並獲得意想不到的功能時,最好刪除@並查看是否有任何錯誤出現。

+0

我已檢查並上傳文件夾是可寫的.... – user1396112

+0

是我只使用@僅用於此目的,但它不顯示nythng – user1396112

0

給予存儲上傳文件的文件夾的適當權限。

sudo chmod -R 755 /var/www/html/folder 

還檢查和更改所有權

shudo chown root:www /var/www/html/folder 

改變路徑以你的。

相關問題