2017-06-14 36 views
0

好吧,我試過了我能想到的所有東西,無法讓文件上傳工作。

  • PHP文件上傳功能
  • PHP最大上傳大小設置爲1024M
  • 我已經試過Form中的最大尺寸設置爲各種各樣的東西
  • HTML表單包含正確的東西

我現在已經減少了PHP到一個簡單的腳本,告訴我它試圖解決這個問題。實際上沒有其他PHP腳本在Form「action」所在的頁面上運行。

無論我是否提交表單以獲取PHP腳本,或直接指向瀏覽器以消除表單上可能存在的問題,$ _FILES數組完全無效,完全沒有任何數據。

請注意,我把一些其他數據放在窗體來驗證$ _POST正在工作。

我放棄了......這是怎麼回事?

最小化形式的版本:

<form id="create_form" method="post" action="...bla.php" encytype="multipart/form-data"> 
<input type="hidden" name="MAX_FILE_SIZE" value="4096000"> 
<input name="file" type="file" class="form-control"></input> 

完整的PHP腳本:

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

$invoice = $_POST['id']; 
$date = $_POST['date']; 
$amount = $_POST['amount']; 
$type = $_POST['type']; 
$property = $_POST['property']; 
$fileName = $_FILES['file']['name']; 
$fileSize = $_FILES['file']['size']; 
$fileError = $_FILES['file']['error']; 

echo 'Invoice: '.$invoice.'<br />'; 
echo 'Date: '.$date.'<br />'; 
echo 'Amount: $'.$amount.'<br />'; 
echo 'Type: '.$type.'<br />'; 
echo 'Property: '.$property.'<br />'; 
echo 'File Name: '.$fileName.'<br />'; 
echo 'File Size: '.$fileSize.'<br />'; 
echo 'File Error: '.$fileError.'<br />'; 
echo '$_FILES Array: </br >'; 
print_r ($_FILES); 
?> 

,輸出...

Notice: Undefined index: file in ...bla.php on line 11 

Notice: Undefined index: file in ...bla.php on line 12 

Notice: Undefined index: file in ...bla.php on line 13 
Invoice: 411 
Date: 2017-06-14 
Amount: $65 
Type: electric 
Property: 774 
File Name: 
File Size: 
File Error: 
$_FILES Array: 
Array () 
+0

那是PHP在同一個腳本的HTML?或者,PHP腳本在任何時候都執行而沒有提交表單數據?因爲如果是這樣,這些錯誤只會在第一次加載頁面/腳本加載時沒有數據時生成。 – Enstage

+0

PHP是一個單獨的文件。儘管我不擔心通知,因爲只要我獲得$ _FILES數據填寫,他們就不會在那裏。我只是有錯誤報告,以防萬一我錯過了一些大聲笑。這裏複製的位是WITH表單提交給它的 - 並且所有$ _POST數據都與$ _FILES數據不同。 – Dylan

+0

什麼是'encytype'?這是一個錯字或代碼錯字嗎? – apokryfos

回答

0

什麼是encytype?這是一個錯字或代碼錯字嗎?

感謝apokryfos--就是這樣!被忽視的100倍......

改正的代碼:

enctype="multipart/form-data"