我无法在magento管理面板中上传图像,出现错误“目标文件夹不可写或不存在”。最近将所有文件从一个主机移到了另一个。有什么解决办法吗?
我无法在magento管理面板中上传图像,出现错误“目标文件夹不可写或不存在”。最近将所有文件从一个主机移到了另一个。有什么解决办法吗?
Answers:
在您的项目中,打开文件lib/Varien/File/Uploader.php
,并将其Mage::log()
放入save()
函数中。
public function save($destinationFolder, $newFileName = null)
{
$this->_validateFile();
if ($this->_allowCreateFolders) {
$this->_createDestinationFolder($destinationFolder);
}
if (!is_writable($destinationFolder)) {
// Put a mage::log() and check what is the folder magento is looking for.
Mage::log($destinationFolder);
throw new Exception('Destination folder is not writable or does not exists.');
}
...
}
从日志中,您可以找到Magento正在寻找的文件夹。然后检查该文件夹的权限。
我在Magento 2上遇到了相同的错误,在这种情况下,这是错误来自的文件:
vendor/magento/framework/File/Uploader.php
在线,256
您可以暂时放置以下代码以获取不可写/不存在的文件夹:
if( !is_writable($destinationFolder) ) {
// throw new Exception('Destination folder is not writable or does not exists.');
throw new Exception($destinationFolder);
}
否则,请检查以下文件夹是否存在以及Web服务器可写的文件夹:
pub/media/catalog/
pub/media/catalog/category
pub/media/catalog/product
pub/media/images
pub/media/wysiwyg/
为了解决这个问题,我几次遇到了这个问题,并且忘记了它通常是映像文件本身,而不是验证权限等所有的服务器。由于尺寸或文件大小太大,它仍然不会上传图像。
我的解决方案是:
在上传之前按比例缩小HIGH-REZ照片。
增加magento最大分辨率或上传图像 System > Catalog > Product Image
确保媒体文件夹media / tmp / catalog / product存在,并且“该目录可被您的Web服务器写入”
777
,不如说“并使该目录可被您的Web服务器写入”。这样做的想法是,不必仅授予每个用户写访问权限,以便您的Web服务器可以写图像。(我不是投票否决的人,但以防万一您想知道,这很可能是原因)
请检查具有777权限的媒体文件夹。如果启用了编译模式,则还检查包含777权限的文件夹。
给这些文件夹777权限后,问题已为我解决。
它可能是Plesk主管部门过期的证书(这是我的情况)。
我尝试了上述步骤,但没有成功。从那里,我尝试通过FileZilla访问文件,以一次为所有文件夹提供权限,因此出现有关过期证书的错误消息。它不是商店本身的SSL证书,而是Plesk的管理。我创建了一个新的自签名证书,应用了其Plesk管理,一切恢复正常。
这对我有用。我把我的贡献留在这里。
祝好运