奇怪的是,仅在本地环境上传失败,它适用于生产环境和开发环境。所有这些都使用 docker 来运行项目,并且我在 docker 中检查了我的本地 php.ini。设置正确,这是关于我的文件上传的一些信息
发布数据:
------------KM7GI3GI3Ef1ei4ae0gL6GI3GI3Ij5
Content-Disposition: form-data; name="Filename"
test.pdf
------------KM7GI3GI3Ef1ei4ae0gL6GI3GI3Ij5
Content-Disposition: form-data; name="PHPSESSID"
<?php echo session_id(); ?>
------------KM7GI3GI3Ef1ei4ae0gL6GI3GI3Ij5
Content-Disposition: form-data; name="fileNameFormat"
{time}{rand:6}
------------KM7GI3GI3Ef1ei4ae0gL6GI3GI3Ij5
Content-Disposition: form-data; name="upfile"; filename="test.pdf"
Content-Type: application/octet-stream
------------KM7GI3GI3Ef1ei4ae0gL6GI3GI3Ij5
Content-Disposition: form-data; name="Upload"
Submit Query
------------KM7GI3GI3Ef1ei4ae0gL6GI3GI3Ij5--
php部分:
<?php var_dump($_FILE);?>
结果:
NULL
我的 php.ini 的部分设置
post_max_size = 2000M
max_input_time = 6000000000000000000000000000000000000000000
memory_limit = 1280M
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2000M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 2000000000000000000000000000000000000000000
最佳答案
设置max_input_time
和 upload_max_filesize
到一个共同的值,比如3000。这两个设置的值太大了,php不能承认。 l 将这些设置重置为3000,然后重新启动容器,完成。现在文件上传可以成功了。
关于php - Docker 与 php,文件上传失败,$_FILE 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255329/