Отключить загрузчик флэш-памяти в Magento


Существуют ли какие-либо надежные способы отключения загрузчика Flash и использования "классического" загрузчика? Возможно ли это вообще без использования расширения?

Я просто обычно пытаюсь загрузить изображение через администратора - для /var и /media (и для всех вложенных папок) установлено значение 777. Ответ, который я получаю в ответ, таков:

{"ошибка": "Файл не был загружен"., "код ошибки":666}

Author: Francis Kim, 2013-02-25

5 answers

Объяснение

Эта ошибка происходит из Varien_File_Uploader::__construct() в lib/Varien/File/Uploader.php

Вот важные части

<?php

class Varien_File_Uploader
{
    /**
     * Uploaded file handle (copy of $_FILES[] element)
     *
     * @var array
     * @access protected
     */
    protected $_file;

    const TMP_NAME_EMPTY = 666;

    function __construct($fileId)
    {
        $this->_setUploadFileId($fileId);
        if(!file_exists($this->_file['tmp_name'])) {
            $code = empty($this->_file['tmp_name']) ? self::TMP_NAME_EMPTY : 0;
            throw new Exception('File was not uploaded.', $code);
        } else {
            $this->_fileExists = true;
        }
    }
}

Оглядываясь назад на дерево, вы видите, что это называется

$uploader = new Mage_Core_Model_File_Uploader('image');

, который расширен из класса Varien, поэтому в данном случае Varien_File_Uploader::_setUploadFileId($fileId) построит массив $this->_file на основе ключа image.

Итак, теперь проблема в том, почему $_FILES['image']['tmp_name'] пусто?

Я проверил поле 'error', временно заменив его на throw new Exception('File was not uploaded. ' . $this->_file['error'], $code);

У меня 7, который является Failed to write file to disk. Introduced in PHP 5.1.0. что означает, что это проблема с разрешениями.

Решение

Выполните phpinfo(), чтобы проверить, где установлен ваш upload_tmp_dir, и убедитесь, что он доступен для записи.

В моем случае у меня не хватило файлового пространства в каталоге /tmp моего сервера.

 8
Author: Steve Robbins, 2017-05-23 12:37:13

Я всегда использовал загрузчик изображений без вспышки, который работал с CE v1.4-v1.7 без проблем. Модуль больше не доступен через Magento Connect, хотя его исходный код активно поддерживается (по состоянию на октябрь 2016 года) и доступен на GitHub.

Вы можете взять код расширения и просто извлечь ту часть, которая вам нужна, если это действительно необходимо.

 2
Author: choco-loo, 2016-10-03 20:45:35

Я бы сказал: "нет". Это невозможно из коробки, но я нашел плагин:

Http://www.paoloiannelli.com/2012/07/30/how-to-disable-flash-uploader-magento/

 1
Author: Fabian Blechschmidt, 2015-04-15 09:00:02

У меня было то же самое, но у меня было обновление Windows. Перезагрузил компьютер, и все снова заработало

 0
Author: Peter Vis, 2016-07-21 08:18:54

Здесь вы можете найти расширение Magento, которое позволяет загружать несколько изображений с помощью jquery и без flash: https://www.magentocommerce.com/magento-connect/multi-images-uploader-jquery-no-flash.html

 0
Author: allbyweb, 2016-10-08 13:18:45