我想使用CodeIgniter在MySQL中导入CSV文件,我是定义的名称和正确的函数(希望如此),但获取我的文件的未定义索引我找到解决方案并获得一个但不会工作。
控制器
$file_data = $this->csvimport->get_array($_FILES['csvfile']['name']);
foreach($file_data as $row)
{
$data[] = array(
'Hall_Ticket_No' => $row['Hall_Ticket_No'],
'Name' => $row['Name'],
'Course' => $row['Course']
);
}
$data['query'] = $this->ExamModel->insertBlock($data);
HTML
<div class="form-group col-lg-12 col-xs-12">
<label for="csv_file">Select excle (CSV) file:</label>
<input type="file" name='csvfile' accept=".csv" class="form-control" id="csv_file" required="">
</div>
错误
Severity: Notice
Message: Undefined index: csvfile
Filename: controllers/Exam.php
Line Number: 20
答案 0 :(得分:2)
确保在您的表单中..您输入了enctype。 例如:
DOMXpath::query
在提交表单时检查文件是否已成功更新。使用<form method="post" enctype="multipart/form-data" action="index.php"></form>
查看结果。
print_r
答案 1 :(得分:0)
target--random-number-1 target--random-number-2 target--random-number-3
通过替换适用于我的{UPLOAD-URL}来尝试上述代码。基本上我已经在您的代码中添加了带有enctype属性的表单元素。
使用JS
function random_class_number(){
// if we've changed the target...
if (document.querySelector('#target').classList.contains('target-has-random-number')) {
// restore the previous classlist
document.querySelector('#target').classList = stored_classlist;
} else {
// if we haven't yet changed the target, store the classlist
var stored_classlist = document.querySelector('#target').classList;
}
const random_number = Math.floor((Math.random() * 3) + 1);
document.querySelector('#target').classList.add('target--random-number-' + random_number);
document.querySelector('#target').classList.add('target-has-random-number');
}
答案 2 :(得分:0)
如果 CSV 文件的格式为“带有 BOM 的 UTF-8”,则可能会发生此错误。在记事本中打开 CSV 文件,然后在右下角看到格式。
如果使用 Excel 创建 CSV 文件,请确保在保存时使用“CSV (MS-DOS) (*.csv)”选项而不是“CSV (UTF-8)” .