$_FILES數組為空
-
1.檢查form表單
1.1 是否添加enctype="multipart/form-data"屬性,
1.2 是否使用post發送方式 -
2.檢查PHP配置文件php.ini
如果不知道php.ini文件在什么位置,可以在當前PHP文件中輸入echo phpinfo(); 然后在瀏覽器中查看PHP版本信息,如下圖所示即為php.ini存儲位置,然后在命令窗口打開( vi ).
2.1查看file_uploads屬性是否為on
在命令模式下輸入?file_uploads即可快速找到該屬性;
2.2 查看upload_max_filesize設置,如果比php中設置的size尺寸小也會導致$_FILES為空,默認為2M,可以改為自己想要;
2.3 修改max_execution_time 屬性值,一般上傳默認為30s,如果文件大於5M時這個時間就不夠用了,可以將其設置為0,也就是不受時間限制
2.4 如果是多個文件上傳,需要修改post_max_size 屬性,默認為8M,它是整個form的大小,如果upload_max_filesize超過post_max_size的大小也會影響文件上傳
move_uploaded_file()如果出現了"failed to open stream"的警告,如下圖所示
這是最終存儲上傳文件的文件夾沒有權限的問題,因為上傳文件首先是作為臨時文件存儲,然后使用move_uploaded_file()將文件移動到保存的位置,而保存的文件夾沒有寫入的權限,可以在PHP文件中輸入 echo exec('who am i');查看當前使用者
解決的辦法是將上傳文件要保存的文件夾修改權限,在該文件夾的命令模式下輸入chmod 757 upload就可以了。。