Prestashop上传产品图片失败

时间:2014-04-07 12:57:01

标签: php prestashop

将prestashop从我的localhost上传到服务器后,出现了问题 尝试上传产品图片时,我收到此错误“服务器文件大小与本地文件大小不同”

在prestashop文件中搜索后,我发现uploader类负责上传过程。

public function upload($file, $dest = null)
{
    if ($this->validate($file))
    {
        if (isset($dest) && is_dir($dest))
            $file_path = $dest;
        else
            $file_path = $this->getFilePath(isset($dest) ? $dest : $file['name']);

        if ($file['tmp_name'] && is_uploaded_file($file['tmp_name'] ))
                move_uploaded_file($file['tmp_name'] , $file_path);
        else
            // Non-multipart uploads (PUT method support)
            file_put_contents($file_path, fopen('php://input', 'r'));

        $file_size = $this->_getFileSize($file_path, true);

        if ($file_size === $file['size'])
        {
            $file['save_path'] = $file_path;
        }
        else
        {
            $file['size'] = $file_size;
            unlink($file_path);
            $file['error'] = Tools::displayError('Server file size is different from local file size');
        }
    }

    return $file;
}

当评论if语句负责比较文件大小和tring上传图像时我得到了这个错误

“复制图像时出错,文件不再存在。”

我将img文件夹权限更改为777仍然是同样的问题?

2 个答案:

答案 0 :(得分:0)

这是一个许可问题。我通过对缓存和主题文件夹提供完全访问权限(777)解决了这个问题。

如果这没有帮助,那么尝试完全访问所有文件。出于安全原因,请务必将文件夹的权限更改为755,将文件的权限更改为644。

答案 1 :(得分:-1)

请更改" if($ file_size === $ file [' size'])"到" if($ file_size = $ file [' size'])"

这种方法适合我。