在Magento上传产品图片时出现PHP Foreach错误

时间:2014-10-08 11:35:38

标签: php magento

对此问题的任何帮助表示赞赏,当我从后端管理面板上传产品图片时,我收到此错误。

Warrning: Invalid argument supplied for foreach() in /Applications/AMPPS/www/magento/app/code/core/Mage/Core/Model/File/Validator/NotProtectedExtension.php on line 91

经过一些调试后,我明白了

$extensions = $helper->getProtectedFileExtensions()

返回null,因此返回foreach错误。

我最近没有上传任何图片,所以我不知道是什么特别的变化触发了这个。

2 个答案:

答案 0 :(得分:4)

在调试错误

中浪费了一天之后弄清楚了问题

我可能已经搞乱了安装脚本并在 core_config_data 表中插入了以下行

path => 'general', value => NULL

这导致'general'的配置树指向NULL,因此指向键

'general/file/protected_extensions'

永远不会下降。由于数据库值是在从xml文件中获取配置值之后填充和添加的,因此上面的行删除了以路径 general

开头的所有键

答案 1 :(得分:0)

检查你是否有这个:

<protected_extensions>
    <!-- PHP script file extension -->
    <php>php</php>
    <!-- File extension of configuration of an Apache Web server -->
    <htaccess>htaccess</htaccess>
    <!-- Java script file extension -->
    <jsp>jsp</jsp>
    <!-- Perl script file extension -->
    <pl>pl</pl>
    <!-- Python script file extension -->
    <py>py</py>
    <!-- Active Server Page script file extension -->
    <asp>asp</asp>
    <!-- UNIX command prompt file extension -->
    <sh>sh</sh>
    <!-- Common Gateway Interface script extension type -->
    <cgi>cgi</cgi>
    <!-- BOF HTML file extensions -->
    <htm>htm</htm>
    <html>html</html>
    <phtml>phtml</phtml>
    <shtml>shtml</shtml>
    <!-- EOF HTML file extensions -->
</protected_extensions>
<{1>}中的

(Magento 1.7.0.1中的第377-400行)。

如果没有,你已经编辑了一个核心文件,这不是一个好主意。如果存在,请检查db,core_config_table,path =&#39; general / file / protected_extensions&#39;。不应该是什么。
最后,如果为此参数设置了默认值,请检查其他模块(社区和本地)的config.xml,如下所示的块:

app\code\Core\Magento\Core\etc\config.xml