【问题标题】:Unable to upload images after update to Magento 1.9.0.1更新到 Magento 1.9.0.1 后无法上传图片
【发布时间】:2014-10-01 10:02:42
【问题描述】:

我已经运行了很长时间,最近搬到了另一台服务器并从 1.8 升级到 Magento 1.9。在通常的打嗝之后,除了将图像上传到产品(以及在所见即所得编辑器中)之外,一切似乎都正常工作。

Flash 工作,我可以使用按钮选择图像,然后上传栏运行到 100%,然后错误“文件未上传”。出现。

我一直在寻找所有可能的问题并检查了以下内容:

  • 图片不是太大(我尝试了几张从 1kb 到 2mb 的不同图片)
  • 新产品以及带有图片的现有产品都会出现此错误
  • 所有媒体文件夹都有 chmod 777
  • 错误存在于所有浏览器(IE、FF 和 Chrome)中
  • Magento 运行在私有 VPS 上,有大量空闲磁盘空间
  • 图像未显示在 media/tmp 文件夹或 media/catalog 文件夹中
  • 所有图像始终通过 Magento 后端导入
  • 我尝试过从媒体文件夹中删除 .htaccess 文件是否有帮助(没有帮助)
  • 我尝试在全局视图以及商店视图中上传图片

如何解决这个问题?或者至少找到它发生的原因?

【问题讨论】:

    标签: image magento


    【解决方案1】:

    编辑文件 lib/Varien/File/Uploader.php 并在 save() 函数中添加Mage::log()

    public function save($destinationFolder, $newFileName = null)
        {
            $this->_validateFile();
    
            if ($this->_allowCreateFolders) {
                $this->_createDestinationFolder($destinationFolder);
            }
    
            if (!is_writable($destinationFolder)) {           
                Mage::log($destinationFolder);
                throw new Exception('Destination folder is not writable or does not exists.');
            }
    
    
    }
    

    或到其他地方,并得到确切的错误...... 文件将保存在配置的 Magento 异常和日志文件夹中。

    【讨论】:

    • 日志显示:` 2014-10-01T14:31:45+00:00 ERR (3): Warning: file_exists(): oopen_basedir 限制生效。文件(/var/zpanel/temp/phpmFoCp3)不在允许的路径内:/var/zpanel/hostdata/zadmin 中的 (/var/zpanel/hostdata/zadmin/public_html/hogty_com:tmp/magento/var) /public_html/hogty_com/includes/src/Varien_File_Uploa‌​der.php 在第 150 行` 但是,我还不够先进,无法理解这一点。我相信有些东西在错误的地方,或者有错误的权限,但并不完全理解。任何进一步的帮助将不胜感激。
    • 如果您在托管并且无法访问配置(htacces、vhosts),请将此错误发送给您的提供商,或者您可以更改 PHP 设置,相关问题:stackoverflow.com/questions/1846882/…
    【解决方案2】:

    请在 Firefox 或 chrome 中打开您的检查元素(q)并检查控制台选项卡,如果您发现错误为 “未捕获的错误:函数名称必须是 C:\MAMP 或 wamp 或 xamp\htdocs 中的字符串或 www\magento\lib\Varien\File\Uploader.php:259" 那么您可以通过以下解决方案修复它。

    -首先你应该从 C:\MAMP 或 wamp 或 xamp\htdocs 或 www\magento\lib\Varien\File\Uploader.php 打开 Uploader.php 并转到 259行找到这段代码

        $params['object']->$params['method']($this->_file['tmp_name'])
    

    并将其更改为

        $params['object']->{$params['method']}($this->_file['tmp_name']);
    

    我只是在 $params['method'] 周围添加 {} 就可以了 我认为这个错误来自改变你的 php 版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      相关资源
      最近更新 更多