我有一个php Web应用程序,我部署到多个服务器。它适用于我的本地安装以及我所安装的所有其他服务器。
但是在我正在部署的当前服务器上,我遇到了所有文件上传功能的问题。
当尝试调试它时,我意识到它们在尝试获取finfo(FILEINFO_MIME_TYPE)时失败。
示例:表单有一个名为“file_import”的上传字段。我将以下代码行放入共享导入函数。
die(print_r($_FILES['file_import']));
在我的本地安装上,它返回:
Array
(
[name] => US Capital Division.csv
[type] => application/vnd.ms-excel
[tmp_name] => C:\wamp\tmp\php3B7C.tmp
[error] => 0
[size] => 1268
)
1
在它返回的当前部署上载相同的文件:
Array
(
[name] => US Capital Division.csv
[type] => application/vnd.ms-excel
[tmp_name] => /tmp/phpJdRZDW
[error] => 0
[size] => 1268
)
1
他们都说他们没有错误,但部署服务器只提供tmp_name值的文件夹名称,而本地安装提供临时文件夹AND文件名。所以,当我的代码尝试$ _FILES ['file_import'] ['tmp_name']时,它会出错。
我觉得它必须是服务器设置或文件夹设置,但我在网上找不到任何会导致这种情况的内容。
感谢。
答案 0 :(得分:0)
实际上,phpJdRZDW
里面[tmp_name] => /tmp/phpJdRZDW
不是文件夹...它只是一个临时文件名,而文件位于/tmp/
文件夹内(等待移动并且[通常] ]重命名)。