2012-11-02 50 views
0

你看到這裏有什麼問題嗎?我找不到任何東西。爲什麼我的文件上傳腳本不工作?

此打印:

echo $_FILES["new_text_file"]["name"]; 

,這太:

echo $_FILES["new_text_file"]["tmp_name"]; 

PHP:
「; 回波$ _FILES [」 new_text_file 「] [」 tmp_name的值「]; //將文本文件上傳到服務器

 if(move_uploaded_file($_FILES["new_text_file"]["tmp_name"]), $_FILES["new_text_file"]["name"]) 
     { 
      //header('Location: ga-dev-exercise-pavan.php'); 
      echo 'worked'; 
     }else { 
      echo 'did not work'; 
     } 
} 
?> 

HTML:

<form enctype="multipart/form-data" action="ga-dev-exercise-pavan.php" method="POST"> 
     Choose a text file you want to upload and search through: 
     <input type='file' name='new_text_file'> 

     <input type="hidden" name="submit_yes_file" value="true" /> 
     <br /><br /> 
     <input type="submit" value="upload"> 
    </form> 
+3

那麼有什麼不工作? –

+0

將文件移動到另一個文件夾。您當前將其保留在tmp文件夾中 – Bgi

+0

使用method = GET,您可以看到參數內部發生了什麼。它可以幫助你找出你的錯誤在哪裏。 – user1534664

回答

1

括號是關閉。它應該是這樣的:

if(move_uploaded_file($_FILES["new_text_file"]["tmp_name"], $_FILES["new_text_file"]["name"])) 
2

,應指定一個目標路徑

$target_path = "uploads/"; 

$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 

http://www.tizag.com/phpT/fileupload.php

編輯: 在評論中提到,括號放錯位置:

錯誤:

如果(move_uploaded_file($ _ FILES [ 「new_text_file」] [ 「tmp_name的值」]),$ _FILES [ 「new_text_file」] [ 「名稱」])

正確

如果(move_uploaded_file($ _ FILES [ 「new_text_file」] [ 「tmp_name的值」],$ _FILES [ 「new_text_file」] [ 「名稱」]))

+1

謝謝RezaSh。問題是括號。我在下面提交了一個答案。我需要將文件上傳到當前目錄,這就是爲什麼我沒有指定一個子目錄。 –

+0

是的,你是對的,謝謝,我更新了我的答案 – RezaSh

2

您沒有自動允許到處移動上傳的文件。您需要將它移動到您的PHP腳本有權寫入的地方。

因此,例如,

$src = $_FILES["new_text_file"]["tmp_name"]; 
$dst = './tmp_dir/'.basename($_FILES["new_text_file"]["name"]); 

if (move_uploaded_file($src, $dst)) 
{ 

basename保護您免受用戶指定惡意文件的路徑(針對不重複的文件名Nothing),則tmp_dir是你可以寫一個目錄。

使用$src$dst清除了一下代碼,讓我看到了您在樣品中有一個額外的括號...

+0

謝謝伊瑟尼。我找出了下面的問題。這是括號。 –

相關問題