Magento 1.9.2 और php7 - छवि अपलोड त्रुटि


9

मैं बस Php के साथ Magento 1.9.2 का परीक्षण कर रहा हूं। सभी काम करने लगे थे, लेकिन अचानक मैंने उत्पाद के लिए छवि अपलोड करने की कोशिश की। मुझे नीचे की तरह त्रुटि मिली:

Fatal error</b>:  Uncaught Error: Function name must be a string in /home/admin/domains/store.com/public_html/dev/lib/Varien/File/Uploader.php:259
Stack trace:
#0 /home/admin/domains/store.com/public_html/dev/lib/Varien/File/Uploader.php(180): Varien_File_Uploader-&gt;_validateFile()
#1 /home/admin/domains/store.com/public_html/dev/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/GalleryController.php(46): Varien_File_Uploader-&gt;save('/home/admin/dom...')
#2 /home/admin/domains/store.com/public_html/dev/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_Catalog_Product_GalleryController-&gt;uploadAction()
#3 /home/admin/domains/store.com/public_html/dev/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action-&gt;dispatch('upload')
#4 /home/admin/domains/store.com/public_html/dev/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard-&gt;match(Object(Mage_Core_Controller in <b>/home/admin/domains/store.com/public_html/dev/lib/Varien/File/Uploader.php

किसी को पता है कि इसे कैसे ठीक करना है?

अपलोड में प्रभावित फंक्शन। 259 के आसपास लाइन में

protected function _validateFile()
    {
        if ($this->_fileExists === false) {
            return;
        }

        //is file extension allowed
        if (!$this->checkAllowedExtension($this->getFileExtension())) {
            throw new Exception('Disallowed file type.');
        }
        //run validate callbacks
        foreach ($this->_validateCallbacks as $params) {
            if (is_object($params['object']) && method_exists($params['object'], $params['method'])) {
                $params['object']->$params['method']($this->_file['tmp_name']);
            }
        }
    }

जवाबों:


34

http://php.net/manual/de/migration70.incompatible.php https://wiki.php.net/rfc/uniform_variable_syntax

यूनिफ़ॉर्म वेरिएबल सिंटैक्स के कारण अब कोड को बाएं से दाएं की सख्ती से व्याख्या की जाती है।

रेखा

$params['object']->$params['method']($this->_file['tmp_name']);

होना चाहिए

$params['object']->{$params['method']}($this->_file['tmp_name']);

आप इस उत्तर को संपादित करने के लिए सभी फाइलों का अवलोकन पा सकते हैं ।


कूल, 100% काम करता है मुझे उम्मीद है कि Magento 1.9.2 में कोई अन्य php 7 असंगति नहीं है। सहायता के लिए धन्यवाद!
23

यह कोड मेरे लिए मैगेंटो 1.9.2.4
matinict

इस समाधान में सभी फाइलें हैं जिन्हें आपको एक अच्छे PHP7 प्रदर्शन के लिए संपादित करना होगा: magento.stackexchange.com/a/105604/37536
एलेक्स

बहुत बढ़िया ... यह मेरे लिए ठीक काम कर रहा है
रमेश कुमार

2

उपरोक्त उत्तरों के अलावा, फ़ाइल की जाँच करना न भूलें:

259 पंक्ति में \ src \ Varien_File_Uploader.php शामिल है

बदलने के

$params['object']->$params['method']($this->_file['tmp_name']);

साथ में

$params['object']->{$params['method']}($this->_file['tmp_name']);

बस इन अस्थायी फ़ाइलों को संपादित करने के बजाय फिर से संकलित करें?
एंडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.