Vô hiệu hóa trình tải lên Flash trong Magento


7

Có cách nào đáng tin cậy để vô hiệu hóa trình tải lên Flash và sử dụng trình tải lên 'cổ điển' không? Điều này thậm chí có thể mà không cần sử dụng một phần mở rộng?

Tôi thường cố gắng tải lên một hình ảnh thông qua quản trị viên - cả /var/media(và tất cả các thư mục phụ) được đặt thành 777. Phản hồi tôi nhận được là:

{"error": "Tệp không được tải lên.", "mã lỗi": 666}

Câu trả lời:


8

Giải trình

Lỗi này xuất phát từ Varien_File_Uploader::__construct()tronglib/Varien/File/Uploader.php

Dưới đây là những phần quan trọng

<?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;
        }
    }
}

Nhìn lên cây bạn thấy cái này được gọi là

$uploader = new Mage_Core_Model_File_Uploader('image');

Được mở rộng từ lớp Varien, do đó, Varien_File_Uploader::_setUploadFileId($fileId)sẽ xây dựng $this->_filemảng dựa trên khóa image, trong trường hợp này.

Vậy bây giờ vấn đề là tại sao lại $_FILES['image']['tmp_name']trống rỗng?

Tôi đã kiểm tra 'error'trường bằng cách tạm thời thay thế nó bằngthrow new Exception('File was not uploaded. ' . $this->_file['error'], $code);

Tôi đã nhận được 7, Failed to write file to disk. Introduced in PHP 5.1.0.có nghĩa là đó là một vấn đề quyền.

Giải pháp

Thực hiện phpinfo()để kiểm tra vị trí của bạn upload_tmp_dirđược đặt và đảm bảo nó có thể ghi được.

Trong trường hợp của tôi, tôi đã hết dung lượng tệp trong /tmpthư mục của máy chủ.


2

Tôi đã luôn sử dụng Trình tải lên hình ảnh không flash, hoạt động với CE v1.4 - v1.7 mà không gặp vấn đề gì. Mô-đun không còn khả dụng qua Magento Connect, mặc dù mã nguồn của nó được duy trì tích cực (kể từ tháng 10 năm 2016) và có sẵn trên GitHub .

Bạn có thể lấy mã mở rộng và chỉ cần trích xuất phần bạn cần nếu thực sự cần thiết.


Mục đó MageBayVaporated và dường như không còn nữa.
Phòng thí nghiệm Fiasco

Tôi đã cài đặt. nó hoạt động tốt khi tải lên hình ảnh sản phẩm, nhưng trong tải lên tệp sản phẩm có thể tải xuống, nó sẽ không hoạt động. Bạn có bất kỳ giải pháp thay thế nào khác để thực hiện mà không cần flash trên phần có thể tải xuống trang sản phẩm có thể tải xuống không
senthil


0

Tôi đã có cùng, nhưng tôi đã có một bản cập nhật của các cửa sổ. Máy tính được khởi động lại và mọi thứ hoạt động trở lại


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.