2014-05-17 14 views
0

我有這樣的PHP代碼:PHP上傳未保存的文件,但表示沒有

if (isset($_FILES["ufile"]["name"])){    //if file was chosen 

    $allowed = array('pdf'); 
    $filename = $_FILES['ufile']['name']; 
    $ext = pathinfo($filename, PATHINFO_EXTENSION); 
    if(!in_array($ext,$allowed)) {    //only allowed filetype is PDF 
     echo 'Nevybral jste soubor PDF. <a style="color:blue; text-decoration:underline;" onclick="window.history.back()">Vraťte se na předchozí stránku.</a>'; 
    } 
    else {           //if everything OK, proceed to save the file 
     $jmeno= "pdf".date("dmY").".pdf";   //for example pdf17052014.pdf (works fine) 
     $path="depository/".$jmeno;    //depository has chmod 777 
     if(move_uploaded_file($_FILES['ufile']['tmp_name'], $path)){ //if moved to depository, echo -all fine- 
      echo "<font color=green>The file was uploaded</font>"; 
      include "friends.php"; 
      mysql_connect("$Dhost", "$Duser", "$Dpass"); 
      mysql_select_db("$Dbname"); 
      $filtr = mysql_real_escape_string(br2nl($_POST["nadpis"])); 
      $filtrB = mysql_real_escape_string(br2nl($_POST["zprava"])); 
      $provedu="insert into usneseni (autor, cas, nazev, text, odkaz) values ('".$_SESSION["jmeno"]."',".time().",'".$filtr."', '".$filtrB."', '".$jmeno."')"; 
      $vysledek=mysql_query("$provedu") or die(mysql_error()." <font color=red>Nepodařilo se zapsat do databáze</font>"); 
      mysql_close();  
     } 
     else { 
      echo $_FILES['ufile']['error']; 
     } 
    } 
} 

當我運行它,它顯示「文件上傳」。然後我將它的名字寫入數據庫,這很好。但是當我看一下「存儲庫」時,該文件不在那裏。存儲庫有chmod 777.代碼不顯示任何錯誤。我不知道爲什麼會發生。

+0

你可以使用這個文件上傳控件http://hayageek.com/docs/jquery-upload-file.php –

+0

試着放這樣並檢查'$ path =「/ depository /' –

回答

2

目錄存放在與主腳本相同的文件夾中,還是與您向我們呈現的上載腳本位於相同的文件夾中?

你如何確定,現在有上傳的文件? (在某些ftp客戶端你必須更新目錄才能看到新文件。)

我把你的腳本用在了我的服務器上。這個對我有用。我使用@date來壓制警告,因爲當時區未正確指定時,它經常會引發錯誤。另一種方法是使用date_default_timezone_set(UTC);//Use your own timezone here.。只要date引發錯誤,你的filestring可能無法正確構建。

你試過var_dump($_FILES);

+0

它是在相同的目錄,路徑爲(Root)/ page/depository /,腳本在「頁面」 – Manderius

+0

我給你增加了一些新的問題 – Geru

+0

我用@date並且現在可以使用了,不知道爲什麼,但是謝謝! – Manderius