2015-10-05 51 views
-2

我想上傳一個圖像文件,它前一天工作得很好。當包含輸入類型文件時,表單不提交

今天,當我創建另一個輸入文件時,它出錯了。然後,我嘗試了單個輸入文件,但它不工作。

這裏是我的代碼:

<?php 
$isSubmit=filter_input(INPUT_POST, "submit"); 
if(isset($isSubmit){ 
    echo $_POST["fileToUpload"]; 
} 
else { 
    echo "not submited"; 
} 

?> 

<!DOCTYPE html> 
<html> 
<body> 

<form action="#" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="submit" name="submit"> 
</form> 

</body> 
</html> 

現在,如果表單提交,它關係到其他部分並顯示在瀏覽器的「未提交」。如果我加載任何其他頁面或同一頁面時,瀏覽器顯示「本地主機正在等待..

那麼除非我重新啓動服務器,該項目無法加載。

但是,當輸入類型文件被更改爲文本或其他,它會很好。

我已經看過php.ini文件沒有與最大文件大小或文件上傳或交的最大文件沒有問題。

+0

首頁打印提交表格後會發生什麼$ isSubmit內。如果 –

+1

這條線(isset($ isSubmit){錯了,它應該是如果(isset($ isSubmit)){ –

+1

^^由於這個錯誤應該已經產生了編譯失敗,我們可以假設您正在使用錯誤的顯示器關閉。* *不要這樣做,而開發** – RiggsFolly

回答

0

這是修改後的代碼,它在我的系統上的作品看看

改變var_dump($_FILES["fileToUpload"]);echo $_POST["fileToUpload"];

你不能從$_POST獲取文件,你需要所有上傳的文件信息駐留

調用數組 $_FILES

,你不能echo這直接,因爲它是一個數組不是字符串

<?php 
$isSubmit=filter_input(INPUT_POST, "submit"); 
if(isset($isSubmit)) 
{ 
    var_dump($_FILES["fileToUpload"]); 
} 
else { 
    echo "not submited"; 
} 

?> 

<!DOCTYPE html> 
<html> 
<body> 

<form action="#" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="submit" name="submit"> 
</form> 

</body> 
</html> 
+0

哈哈在if if else條件語句,否則部分被執行,當輸入類型是文件 –

+0

@RehmanMalekar你使用的是什麼PHP版本 – ddw147

+0

我使用PHP 5.6 –

0

試試這個:它應該顯示文件數組。

<?php 
$isSubmit=filter_input(INPUT_POST, "submit"); 
if(isset($isSubmit)){//close your if block 
    print_r($_FILES["fileToUpload"]);//print file data 
} 
else { 
    echo "not submited"; 
} 

?> 

如果你在窗口嘗試這樣做:

開放本地主機(WAMP/XAMPP),單擊服務器圖標,進入PHP,PHP設置,然後選擇文件上傳,即啓用文件上傳。

+0

什麼改變了,爲什麼? :) – Epodax

+0

@Epodax看到if block.and他應該嘗試使用$ _FILES而不是$ _POST來查看數據。 –

+0

這並不是因爲我不明白,而是隻用「代碼」的答案並沒有太多幫助,解釋了你做了什麼以及OP做錯了什麼,經常幫助OP和未來的訪問者更多。 – Epodax

0

如果你真的沒有得到submit按鈕字段數據返回,並得到[fileToUpload]['error'] = 3那麼最有可能的是,你的php.ini設置亂七八糟。

這些php.ini設置都與一個文件上傳:

upload_max_filesize = max size of each individual file uploaded 

max_file_uploads = max number of files (each of upload_max_filesize) size 
         allowed in a single upload 

post_max_size  = max size of the POST buffer, this includes all FILES + 
         any other fields in the form that come as well 

max_input_time  = max time allowed to upload POST data 

memory_limit  = can also need increasing if lots of big files are uploaded together 

正如你似乎缺少提交按鈕,我會說,你的問題很可能是post_max_size不夠大的文件和窗體上的其他字段。根據經驗,估計post_max_size

簡單的規則就是

post_max_size = (upload_max_filesize * max_file_uploads) 
       + extra space for the normal form fields 

因此,檢查所有這些參數的值,如果你不知道該怎麼從你的php.ini後的實際值更改爲編輯您的的問題,我們可以提出一些建議

相關問題