1

我试图将一些文件上传到我的应用程序,它在 localhost 上运行良好,但是当我在主机上运行我的应用程序时,我的代码在日志中失败了:

Severity: Warning  --> exec() has been disabled for security reasons /home/public_html/system/libraries/Upload.php 1075

经过一番挖掘后,我发现即使exec()被禁用(顺便说一句,这是一个很好的做法),该功能仍然存在。因此,CodeIgniter 所做的检查function_exists('exec')是无用的,因为该功能始终存在,无论它是否启用。

其他人在 stackoverflow 上也有同样的问题,但他们的解决方案对我不起作用。我写这篇文章是因为我想在这里提供我想出的解决方案。

4

1 回答 1

1

我将Upload.php库克隆到我的application/libraries路径,然后编辑第 1064 行

if (DIRECTORY_SEPARATOR !== '\\')

if (false && DIRECTORY_SEPARATOR !== '\\')

此行通常测试主机是否是 Windows 系统,它会跳过尝试使用exec()shell_exec()popen(),而是使用mime_content_type()足以满足我的应用程序的功能。通过添加 false 我确保代码始终回退到该函数。

于 2013-10-16T06:54:06.427 回答