Завантаження зображень Magento не працює навіть після надання дозволу на всі папки 777


9

Я не можу завантажувати зображення на панелі адміністратора magento, отримуючи помилку "Папка призначення не може бути записана або не існує". Нещодавно перенесли всі файли з одного хостингу на інший. Будь-яке рішення для цього?


Який хостинг-пакет у вас є? Якщо вона включає підтримку, можливо, варто запитати їх про поточні дозволи.
Девід Маннерс

У нас є два веб-сайти, розміщені на одному сервері, і ми маємо усі дозволи на завантаження файлу, і навіть не завантажуючи файли
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 шукає. Потім перевірте дозволи для цієї папки.


5
Дуже дякую, що я забув дати дозвіл на файл Media / tmp / категорія / продукт, а після надання дозволу на файл у цій папці проблема вирішена
user3164549

2
Радий почути вашу проблему. Якщо це допомогло вирішити питання, будь ласка, позначте його як відповідь.
Сукешині

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/

3

За мою проблему було вирішено виготовленням

паб / медіа / tmp

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

Наступні папки в папці "pub / media" також є записаними

- banners
- catalog
- images
- wysiwyg

3

Щодо того, чого я мав, я вже кілька разів мав цю проблему і забув, що зазвичай це сам файл зображення, а не сервер після перевірки дозволів і все таке. Він все одно не завантажує зображення, оскільки воно було занадто великим, ні за розмірами, ні за розміром файлів.

Для мене рішення:

  • Перед завантаженням зменшіть розмір ВИСОКОГО РЕЗ-фотографії.

  • Збільшити magento Максимальна роздільна здатність або завантажити зображення System > Catalog > Product Image

  • збільшити ліміт розміру PHP вашого сервера за допомогою .htaccess або config, див .: /programming/6292687/upload-6-mb-image-in-magento

2

Переконайтесь, що медіа-папка мультимедіа / tmp / каталог / продукт існує ", і переконайтеся, що цей веб-сервер буде доступний для запису"


Замість того, щоб встановлювати дозвіл 777, краще сказати "і зробити цей каталог спрацьованим веб-сервером". Ідея полягає в тому, що не потрібно надавати кожному користувачеві доступ для запису лише для того, щоб ваш веб-сервер міг писати зображення. (Я не той, хто виступав на користь, але на всякий випадок, коли вам було цікаво, це, швидше за все, причина цього)
Dan

так, звичайно;)
Altravista

2

Будь ласка, перевірте папку мультимедіа, яка має дозвіл 777. Якщо ви увімкнено режим компіляції, це означає, що перевірка включає папку з дозволом 777 .

Після надання дозволу на 777 цих папок проблема вирішена для мене.


0

Це може бути посвідчення з простроченим терміном від адміністрації Плеска (це було моєю справою).

Я спробував описані вище дії, але це не вийшло. Звідти я намагався отримати доступ до файлів через FileZilla, щоб одразу надати дозволи всім папкам, отже, повідомлення про помилку про сертифікат минув. Це не сертифікат SSL самого магазину, а адміністрація Плеска. Я створив новий самопідписаний сертифікат, застосував його адміністрацію Плеська і все повернулося до норми.

Це працювало для мене. Я залишаю тут свій внесок.

Удачі


0

У Magento є помилка для завантаження файлів, коли ваш magento DocumentRoot на vhost правильно встановлений для

/path/to/magento/pub

Замість (застаріле)

/path/to/magento

Завантажувач намагається створити файли в

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

Зауважте, що паб локації виходить двічі. Вони сказали, що виправлять це в 2.2.0+, але в 2.2.1 ця проблема все ще з’являється.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.