嘿,我遇到了以下问题,请帮忙。
我尝试将图片添加到产品时“目标文件夹不可写...”,但所有需要文件夹的权限为 777 !我删除了服务器上的所有文件,没有触摸数据库,从头开始用新数据库重新安装Magento,一切正常。 但当我切换到以前的数据库(更改 local.xml 中的设置)时,错误再次出现。
数据库如何影响文件夹权限?
更新:
Thanx很多,我们发现Magento从这种方法中跳了出来:
public function getBaseMediaUrl()
{
return Mage::getBaseUrl('media') . 'catalog/product';
}
以下方法:
public function getBaseTmpMediaUrl()
{
return Mage::getBaseUrl('media') . 'tmp/catalog/product';
}
有人知道为什么以及如何????
答案 0 :(得分:16)
Magento代码库中只有一个使用该错误语言的位置。
File: lib/Varien/File/Uploader.php
...
if( !is_writable($destinationFolder) ) {
throw new Exception('Destination folder is not writable or does not exists.');
}
...
在此
之上添加一些临时调试代码...
if( !is_writable($destinationFolder) ) {
Mage::Log($destinationFolder);
//or
var_dump($destinationFolder);
throw new Exception('Destination folder is not writable or does not exists.');
}
...
这会让你知道Magento要写的确切文件夹,但不能。检查这个文件夹,你会发现它不可写。回顾is_writable上的边缘案例也可能会对这一主题有所了解。
答案 1 :(得分:3)
转到:lib / Varien / File / Uploader.php
临时更改以下代码并尝试上传图片。现在在错误消息中,您可以看到文件夹路径。 在文件夹路径中,您必须提供文件权限777,它将正常工作。解决错误后,将代码恢复为正常状态。
if( !is_writable($destinationFolder) ) {
var_dump($destinationFolder);
throw new Exception(''.$destinationFolder.'Destination folder is not writable or does not exists.');
}
答案 2 :(得分:1)
我在Magento上传图片时出现以下错误,然后我执行了以下步骤,这对我有用。
Cd /var/www/
chmod 755 -R /html
chown apache:apache -R /html
setenforce 0
然后重启apache ..
答案 3 :(得分:0)
这是Magento 2中的文件,错误来自:
vendor/magento/framework/File/Uploader.php
在第256
行,您可以暂时放置此代码以获取不可写/不存在的文件夹:
if( !is_writable($destinationFolder) ) {
error_log($destinationFolder);
// or
// 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/
答案 4 :(得分:0)
可能是Plesk政府颁发的过期证书(这是我的情况)。
我尝试了上面的步骤,但它没有用。从那里我尝试通过FileZilla访问文件,立即向所有文件夹授予权限,因此有关过期证书的错误消息。它不是商店本身的SSL证书,而是Plesk的管理。我创建了一个新的自签名证书,应用了Plesk管理,一切恢复正常。
这对我有用。我离开这里是我的贡献。
祝你好运答案 5 :(得分:0)
答案 6 :(得分:0)