Ich habe 2 Textfelder und 1 Datei-Upload, die alle erforderlich sind. Alles funktioniert, wenn ich nur die Textfelder benötige, aber wenn ich den Datei-Upload benötige, bleibt der Validierungsfehler bestehen, dass eine Datei benötigt wird, obwohl ich eine ausgewählt habe. Wer weiß, was ich falsch mache? Vielen Dank im Voraus.CodeIgniter - Dateiupload erforderlich Validierung
// Ansicht
<?php echo form_open_multipart('add'); ?>
<fieldset>
<input type="text" name="name" /><br>
<input type="text" name="code" /><br>
<input type="file" name="userfile" /><br><br>
<input type="submit"value="Add" />
</fieldset>
<?php echo form_close(); ?>
// Controller
public function add() {
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('code', 'Code', 'required');
//$this->form_validation->set_rules('userfile', 'Document', 'required');
//when the above line is active the upload does not go through
if ($this->form_validation->run() == FALSE) {
$data['page_view'] = $this->page_view;
$data['page_title'] = $this->page_title;
$this->load->view('template', $data);
}
else
{
$this->load->library('upload');
if (!empty($_FILES['userfile']['name']))
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$this->upload->initialize($config);
if ($this->upload->do_upload('userfile'))
{
$img = $this->upload->data();
$file_name = $img['file_name'];
$name = $this->input->post('name');
$code = $this->input->post('code');
$this->load->model('create', 'create_model');
$this->create_model->create_entry($name, $code, $file_name);
$data['page_view'] = $this->page_view;
$data['page_title'] = $this->page_title;
$this->load->view('template', $data);
}
else
{
echo $this->upload->display_errors();
}
}
}
}
ich einen Verbesserungsvorschlag haben, besser zu Ihrem HTML einfügen. – Red
Okay, ich habe die HTML hinzugefügt, es ist sehr einfach, aber nicht sicher, ob es helfen wird. – Staysee
Es könnte sein, dass Sie versucht haben, eine Datei hochzuladen, die zu groß ist. Versuchen Sie, eine kleinere Datei hochzuladen, wenn es funktioniert, dann werden Sie wahrscheinlich die Einstellungen in 'php.ini' ändern wollen, damit Sie größere Dateien hochladen können. Auch, wenn Sie diese wirklich schnell debuggen möchten, schlage ich vor, dass Sie eine 'var_dump()' auf der '$ _FILES' superglobal machen und sehen, was der Fehlercode des Datei-Uploads ist. –