我在 codeigniter 中有一个小应用程序。有一个包含 3 个文本字段的表单,名称、电子邮件、位置。这足以提交。但是,有两个可选字段可供所有用户提交图像或视频或两者。我让它工作,直到上传的文件出错。当我希望它停止整个提交直到错误得到修复时,它仍然会提交文本数据。
这是我的控制器的代码。任何帮助都会很棒。谢谢!
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Form extends MY_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
}
function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('nominee', 'Nominee', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
$this->form_validation->set_rules('location', 'Location', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('form');
}
else
{
// Load the library - no config specified here
$this->load->library('upload');
// Check if there was a file uploaded - there are other ways to
// check this such as checking the 'error' for the file - if error
// is 0, you are good to code
if (!empty($_FILES['imageupload']['name']))
{
// Specify configuration for File 1
$config['upload_path'] = 'uploads/images';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
// Initialize config for File 1
$this->upload->initialize($config);
// Upload file 1
if ($this->upload->do_upload('imageupload'))
{
$data = $this->upload->data();
}
else
{
echo $this->upload->display_errors();
}
}
// Do we have a second file?
if (!empty($_FILES['videoupload']['name']))
{
// Config for File 2 - can be completely different to file 1's config
// or if you want to stick with config for file 1, do nothing!
$config['upload_path'] = 'uploads/videos/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
// Initialize the new config
$this->upload->initialize($config);
// Upload the second file
if ($this->upload->do_upload('videoupload'))
{
$data = $this->upload->data();
}
else
{
echo $this->upload->display_errors();
}
}
$this->load->view('thankyou');
//Run code to add into the database
}
}
}