Загрузка изображений в Magento не работает даже после предоставления 777 разрешений для всех папок

9

Я не могу загрузить изображения в админ панель magento, появляется сообщение об ошибке «Папка назначения недоступна для записи или не существует». Недавно переместил все файлы с одного хостинга на другой. Любое решение для этого?

user3164549
источник
Какой тип хостинга у вас есть? Если это включает поддержку, возможно, стоит спросить их о текущих разрешениях.
Дэвид Мэннерс
У нас есть два веб-сайта, размещенных на одном сервере, и у нас есть все права на загрузку файла, даже если файлы не загружаются
user3164549

Ответы:

16

В вашем проекте откройте файл 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. А затем проверьте разрешения для этой папки.

Sukeshini
источник
5
Большое спасибо, что я забыл дать разрешение на доступ к файлу Media / tmp / category / product, и после предоставления разрешения на доступ к этой папке проблема была решена
user3164549
2
Рад слышать, что ваша проблема была решена. Если это помогло решить проблему, отметьте это как ответ.
Sukeshini
5

Magento 2

Я получаю ту же ошибку на 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);
} 

В противном случае проверьте, существуют ли эти папки и доступны ли они для записи веб-серверу:

  • pub/media/catalog/
  • pub/media/catalog/category
  • pub/media/catalog/product
  • pub/media/images
  • pub/media/wysiwyg/
Andrea
источник
3

Для меня проблема была решена путем

Паб / СМИ / TMP

доступный для записи веб-сервером

Следующие папки в каталоге "pub / media" также доступны для записи

- banners
- catalog
- images
- wysiwyg
Элиут Ислас
источник
3

Из-за того, что стоит, я несколько раз сталкивался с этой проблемой и забыл, что обычно это сам файл образа, а не сервер после проверки прав доступа и все такое. Оно по-прежнему не загружало изображение, потому что оно было слишком большим, либо по размеру, либо по размеру файла.

Решения для меня:

  • Уменьшите фотографию HIGH-REZ перед загрузкой.

  • Увеличьте magento Максимальное разрешение или загрузите изображение System > Catalog > Product Image

  • Увеличьте лимит размера PHP вашего сервера с помощью .htaccess или config, см. /programming/6292687/upload-6-mb-image-in-magento.
asherrard
источник
2

Убедитесь, что папка media media / tmp / catalog / product существует "и сделайте этот каталог доступным для записи вашим веб-сервером"

Altravista
источник
Вместо того, чтобы устанавливать разрешение 777, лучше сказать «и сделать этот каталог доступным для записи вашим веб-сервером». Идея состоит в том, что нет необходимости предоставлять каждому пользователю право на запись, чтобы ваш веб-сервер мог писать изображения. (Я не тот, кто проголосовал против, но на тот случай, если вам интересно, это, скорее всего, причина)
Дан
да конечно;)
Альтрависта
2

Пожалуйста, проверьте папку мультимедиа с разрешением 777. Если вы включили режим компиляции, значит, также проверьте, включает ли папка с разрешением 777 .

После 777 разрешения на эти папки проблема для меня решена.

Пасупати Тангавель
источник
0

Это может быть сертификат с истекшим сроком от администрации Plesk (это был мой случай).

Я попробовал шаги выше, но это не сработало. Оттуда я попытался получить доступ к файлам через FileZilla, чтобы дать разрешения сразу всем папкам, поэтому появилось сообщение об ошибке с истекшим сертификатом. Это не сертификат SSL самого магазина, а администрация Plesk. Я создал новый самозаверяющий сертификат, применил его администрацию Plesk, и все вернулось на круги своя.

Это сработало для меня. Я оставляю здесь свой вклад.

Удачи

Кледсон Сильва
источник
0

В Magento есть ошибка при загрузке файла, когда ваш magento DocumentRoot на vhost правильно установлен для

/path/to/magento/pub

Вместо (не рекомендуется)

/path/to/magento

Uploader пытается создать файлы в

/path/to/magento/pub/pub/your_upload_dir

Обратите внимание, что местоположение паб идет дважды. Они сказали, что исправят это в 2.2.0+, но в 2.2.1 эта проблема все еще появляется.

A.Maksymiuk
источник