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 ()
那是PHP在同一個腳本的HTML?或者,PHP腳本在任何時候都執行而沒有提交表單數據?因爲如果是這樣,這些錯誤只會在第一次加載頁面/腳本加載時沒有數據時生成。 – Enstage
PHP是一個單獨的文件。儘管我不擔心通知,因爲只要我獲得$ _FILES數據填寫,他們就不會在那裏。我只是有錯誤報告,以防萬一我錯過了一些大聲笑。這裏複製的位是WITH表單提交給它的 - 並且所有$ _POST數據都與$ _FILES數據不同。 – Dylan
什麼是'encytype'?這是一個錯字或代碼錯字嗎? – apokryfos