在 SAE(或其他雲平台)開發時,明明表單寫得沒問題,卻總提示「未選擇上傳文件」。排查半天發現:<input type="file" name="attaFile"> 中的 F 大寫 導致 $_FILES['attafile'] 取不到值(PHP 預設將鍵名轉為小寫?實際上 SAE 環境對大小寫敏感)。改為 name="attafile" 即刻正常。
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="attaFile" id="attaFile" /> <!-- 大寫 F -->
<button type="submit">上傳</button>
</form>
<input type="file" name="attafile" id="attafile" /> <!-- 全小寫 -->
$_FILES 鍵名直接對應表單 name 屬性,不會自動轉換大小寫。name 轉為小寫存入 $_FILES,導致大寫鍵名取不到值。enctype="multipart/form-data"name 全小寫、無特殊字符$_FILES['attafile'] 而非 $_FILES['attaFile']php.ini 中 file_uploads = On、upload_max_filesize 足夠