Я не можу завантажувати зображення на панелі адміністратора magento, отримуючи помилку "Папка призначення не може бути записана або не існує". Нещодавно перенесли всі файли з одного хостингу на інший. Будь-яке рішення для цього?
Я не можу завантажувати зображення на панелі адміністратора magento, отримуючи помилку "Папка призначення не може бути записана або не існує". Нещодавно перенесли всі файли з одного хостингу на інший. Будь-яке рішення для цього?
Відповіді:
У вашому проекті відкрийте файл 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);
}
В іншому випадку перевірте, чи існують ці папки та чи вони доступні для запису веб-сервером:
pub/media/catalog/
pub/media/catalog/category
pub/media/catalog/product
pub/media/images
pub/media/wysiwyg/
За мою проблему було вирішено виготовленням
паб / медіа / tmp
доступний для написання веб-сервером
Наступні папки в папці "pub / media" також є записаними
- banners
- catalog
- images
- wysiwyg
Щодо того, чого я мав, я вже кілька разів мав цю проблему і забув, що зазвичай це сам файл зображення, а не сервер після перевірки дозволів і все таке. Він все одно не завантажує зображення, оскільки воно було занадто великим, ні за розмірами, ні за розміром файлів.
Для мене рішення:
Перед завантаженням зменшіть розмір ВИСОКОГО РЕЗ-фотографії.
Збільшити magento Максимальна роздільна здатність або завантажити зображення System > Catalog > Product Image
Переконайтесь, що медіа-папка мультимедіа / tmp / каталог / продукт існує ", і переконайтеся, що цей веб-сервер буде доступний для запису"
777
, краще сказати "і зробити цей каталог спрацьованим веб-сервером". Ідея полягає в тому, що не потрібно надавати кожному користувачеві доступ для запису лише для того, щоб ваш веб-сервер міг писати зображення. (Я не той, хто виступав на користь, але на всякий випадок, коли вам було цікаво, це, швидше за все, причина цього)
Будь ласка, перевірте папку мультимедіа, яка має дозвіл 777. Якщо ви увімкнено режим компіляції, це означає, що перевірка включає папку з дозволом 777 .
Після надання дозволу на 777 цих папок проблема вирішена для мене.
Це може бути посвідчення з простроченим терміном від адміністрації Плеска (це було моєю справою).
Я спробував описані вище дії, але це не вийшло. Звідти я намагався отримати доступ до файлів через FileZilla, щоб одразу надати дозволи всім папкам, отже, повідомлення про помилку про сертифікат минув. Це не сертифікат SSL самого магазину, а адміністрація Плеска. Я створив новий самопідписаний сертифікат, застосував його адміністрацію Плеська і все повернулося до норми.
Це працювало для мене. Я залишаю тут свій внесок.
Удачі
У 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 ця проблема все ще з’являється.