首页 > 解决方案 > 在管理控制器中上传 CSV 文件 - 自定义模块

问题描述

我正在尝试使用 csv 文件上传器创建一个管理控制器,以像数组一样处理它。

我找不到有效的方法来做到这一点,我尝试使用 $this-> fields_form,但没有显示任何内容。

然后我做了一个带有输入文件的 tpl 文件,在 initContent 中调用,但我不知道如何在控制器中检索我的文件。

由于 csv 文件,我需要创建我制作的不同类的多个对象。

有人有一些可以帮助我的文档吗,我已经搜索过 prestashop 开发文档,堆栈溢出等,但我没有看到任何可以帮助我的东西(也许我没有搜索好方法?)

等待你的帮助伙计们!

更新 :

更新 :

刚刚找到一种上传文件的方法,但它上传为 .tmp 并且不能作为 csv 文件处理,如何将 tmp 文件转换为 csv ?

这是我的代码:

public function __construct()
    {
        parent::__construct();
        // Base
        $this->bootstrap = true; // use Bootstrap CSS
        $this->fields_options = array(
            'general' => array(
                'title' => $this->l('Upload DB'),
                'fields' => array(
                    'DB_BULB_DATA' => array(
                        'title' => $this->l('Upload DB'),
                        'type' => 'file',
                        'name' => 'DB_BULB_DATA'
                    ),
                ),
                'submit' => array('title' => $this->trans('Save', array(), 'Admin.Actions')),
            ),
        );
        if(isset($_FILES['DB_BULB_DATA'])){
            $headers = fgetcsv(fopen($_FILES['DB_BULB_DATA']['tmp_name'], "r+"));
            print_r($headers);
        }
    }

标签: phpcontrollerprestashopsmarty

解决方案


没有文件类型名称 csvfile ,您需要使用文件类型文件,然后在上传后对 csv 文件进行处理,检查文件扩展名然后处理数据。


推荐阅读