magento管理パネルで画像をアップロードできず、「宛先フォルダーが書き込み可能でないか、存在しません」というエラーが発生します。最近、すべてのファイルを1つのホスティングから別のホスティングに移動しました。これに対する解決策はありますか?
magento管理パネルで画像をアップロードできず、「宛先フォルダーが書き込み可能でないか、存在しません」というエラーが発生します。最近、すべてのファイルを1つのホスティングから別のホスティングに移動しました。これに対する解決策はありますか?
回答:
プロジェクトでファイル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/categorypub/media/catalog/productpub/media/imagespub/media/wysiwyg/私にとって問題は作ることによって解決されました
pub / media / tmp
Webサーバーによって書き込み可能
「pub / media」ディレクトリの下の次のフォルダも書き込み可能です
- banners
- catalog
- images
- wysiwyg何回かこの問題に遭遇し、権限を確認した後のサーバーではなく、通常はイメージファイル自体であることを忘れてしまいました。寸法またはファイルサイズが大きすぎるため、画像をアップロードできませんでした。
私にとっての解決策は:
アップロードする前に、HIGH-REZ写真を縮小してください。
magentoの最大解像度を上げるか、画像をアップロードします System > Catalog > Product Image
メディアフォルダーmedia / tmp / catalog / productが存在することを確認し、「そのディレクトリをウェブサーバーから書き込み可能にする」
777「そして、そのディレクトリをウェブサーバーから書き込み可能にする」と言う方が良いでしょう。Webサーバーが画像を書き込むことができるようにするために、すべてのユーザーに書き込みアクセス権を与える必要はないという考え方です。(私が反対票を投じたのは私ではありませんが、疑問に思った場合に備えて、これが理由であると考えられます)
                    777権限のあるメディアフォルダーを確認してください。コンパイルモードを有効にしている場合は、777権限のあるフォルダーも確認してください。
これらのフォルダーに777のアクセス許可を与えた後、問題は解決しました。