我有一个包含5个文件输入字段的表单,如果文件字段不为空,则所有表格都适用于我的CRUD方法,但是客户端现在想要将某些字段设置为非强制字段。
我正在尝试在我的代码中执行此操作,我遇到的问题是如果文件字段为空则声明一个空变量(在相应的数据库字段中插入空值)。当没有上传任何内容时,我从codeigniter获得一个未定义的变量消息......
这是代码检查文件是否已上传的代码。
if(isset($_FILES['ticketing_summary_file']))
{
$this->upload->initialize($config);
if($this->upload->do_upload('ticketing_summary_file'))
{
$upload_data=$this->upload->data();
$ticketing_summary_file_name=$upload_data['file_name'];
$ticketing_summary_full_file_path = $path_to_uploads.'/'.$ticketing_summary_file_name;
$show['ticketing_summary_file_url'] = $ticketing_summary_full_file_path;
}
}
if(!isset($_FILES['ticketing_summary_file']))
{
$show['ticketing_summary_file_url'] = $empty_file_message;
}
然后这就是我将数据插入我的数据库的方式......我已经尝试在下面和上面的代码中声明'ticketing_summary_file'的内容,但是它说它是空的
$show = array('tour_id' =>$tour,
'date' => $this->input->post('date'),
'location' => $location);
$id = $this->show_model->save($show);
为任何帮助干杯,
丹
答案 0 :(得分:1)
我遇到了类似的问题。我最终检查上传错误是否与lang文件中的文本匹配。可能有更好的方法,但它对我来说是一个快速解决方案。我希望它有所帮助。
<?php
//play code file field
$play_code_errors= '';
$data['play_code_file_name'] = uniqid('pc_', true) . 'csv';
$config['upload_path'] = './media/tmp/';
$config['allowed_types'] = 'csv';
$config['max_size'] = '4024';
$config['file_name'] = $data['play_code_file_name'];
$this->upload->initialize($config);
if ( ! $this->upload->do_upload('play_code_file'))
{
$play_code_errors = $this->upload->display_errors();
if($play_code_errors = $this->lang->line('upload_no_file_selected'))
{
$play_code_errors = '';
}
}