php - 在管理控制器中上传 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);
}
}
解决方案
没有文件类型名称 csvfile ,您需要使用文件类型文件,然后在上传后对 csv 文件进行处理,检查文件扩展名然后处理数据。
推荐阅读
- amazon-web-services - 获取 Amazon Redshift 存储过程中 UNLOADed 记录的计数
- javascript - JavaScript 函数在 JsFiddle 中有效,但在 ASP.NET 部分视图中无效
- git - 修复新手 git 错误
- arrays - Algorithm for Number series row and column
- ios - Swift 5 & CloudKit: recordFetchedBlock does not work on real device
- javascript - Create a google map using a class not an ID
- javascript - Rendering lots of canvas elements with react-konva
- javascript - JavaScript DOM not getting pre assigned CSS properties
- google-cloud-functions - Google Cloud Function :: Service account :: JWT token and Bearer token
- amazon-web-services - On delete move S3 bucket objects to Glacier bucket using lifecycle rules defined in Cloudformation