2013-12-12 107 views
0

我從文件窗體調用的PHP腳本,它應該檢查密碼,文件名,文件類型和錯誤上傳到臨時表格。如果它通過了所有應該使用move_uploaded_file上傳的測試,但這不起作用。沒有錯誤輸出,但我知道它通過了所有的測試,否則它會返回到頁面。 PHP腳本:move_uploaded_file()不上傳文件

<?php 
$temp = explode(".", $_FILES["file"]["name"]); 
if ($_POST["pass"] == "examplePass"){ 
    if($_FILES["file"]["name"] == ""){ 
     header("Location: /upload?i=f"); 
    } 
    elseif($_FILES["file"]["type"] != "application/x-shockwave-flash"){ 
     header("Location: /upload?i=s"); 
    } 
    elseif ($_FILES["file"]["error"] > 0){ 
     header("Location: /upload?i=e"); 
    } 
    else{ 
     move_uploaded_file($_FILES["file"]["tmp_name"], "/swf/". $_FILES["file"]["name"]); 
     if(file_exists("/swf/" . $_FILES["file"]["name"])){ 
      header("Location: /upload?i=o"); 
     } 
     else{ 
      print_r($_FILES); 
     }  
    } 
} 
else{ 
    header("Location: /upload?i=p"); 
} 
?> 

此輸出:

Array ([file] => Array ([name] => launcher.swf [type] => application/x-shockwave-flash [tmp_name] => /tmp/phpBugtQL [error] => 0 [size] => 161303)) 

我曾與多個SWF文件嘗試這樣做,我還記得它曾經的工作。 我已將整個web文件夾設置爲0777,並將其重新遞歸到所有子目錄和文件中。 目錄/ swf /位於根目錄,因此它是絕對路徑。 由於提前,凱爾

+0

你的表單是否使用編碼multipart/form-data?嘗試打開文件處理程序並在目錄中寫入文件。什麼是move_uploaded_file的返回值? – Corni

+0

爲了進行調試,您是否已經將'move_uploaded_file'作爲腳本嘗試到同一個目錄? – Lasse

+0

是的,我的編碼是正確的,我會嘗試Lasse – FishBowl

回答

0

您可以嘗試使用,../swf/或SWF文件夾而不是/swf/

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

原因swf文件夾路徑的完整路徑,請確保您使用了正確的路徑

+0

就像我說的,swf位於我的web服務器的根文件夾中,所以它從web上的完整路徑是:serverurl/swf/< - 這會在我的服務器上啓動目錄,我還以爲你不應該使用相對文件路徑與move_uploaded_file,因爲它有意想不到的結果 – FishBowl

+0

我試圖把我的PHP腳本放在根上,它工作,然後當我把它移回去時它再次工作:/謝謝反正 – FishBowl

相關問題