Frage Codeigniter-Datei hochladen - optional?


Ich bin sicher, das ist einfach, aber ich kann nicht sehen, wie man eine Datei mit CI optional hochladen kann.

Wenn Sie das Dateieingabefeld leer lassen, wird der Fehler "Sie haben keine Upload-Datei ausgewählt" angezeigt.

Der Grund, warum ich möchte, dass es optional ist, ist, dass mein Formular eine Verzeichnistyp-Liste bearbeitet, und ich muss das Bild nicht jedes Mal hochladen, wenn ich den Eintrag bearbeite.

Gibt es eine Möglichkeit, die "erforderliche" Fehlerbehandlung für die Dateiklasse zu entfernen


7
2017-07-19 15:00


Ursprung


Antworten:


Verwenden Sie Folgendes:

<?php if ( $_FILES AND $_FILES['field_name']['name'] ) 
{
    // Upload the file
}

13
2017-07-19 18:37



coderigniter Datei-Upload optional ... funktioniert perfekt ..... :)

---------- Controller ---------

function file()
{
 $this->load->view('includes/template', $data);
}

function valid_file()
{
 $this->form_validation->set_rules('userfile', 'File', 'trim|xss_clean');

 if ($this->form_validation->run()==FALSE) 
 {
    $this->file();
 }
 else
 {
  $config['upload_path']   = './documents/';
  $config['allowed_types'] = 'gif|jpg|png|docx|doc|txt|rtf';
  $config['max_size']      = '1000';
  $config['max_width']     = '1024';
  $config['max_height']    = '768';

  $this->load->library('upload', $config);

  if ( !$this->upload->do_upload('userfile',FALSE))
  {
    $this->form_validation->set_message('checkdoc', $data['error'] = $this->upload->display_errors());

    if($_FILES['userfile']['error'] != 4)
    {
        return false;
    }

  }
  else
  {
    return true;
  }
}

Ich benutze einfach diese Zeilen, die es optional machen,

if($_FILES['userfile']['error'] != 4)
{
 return false;
}

$_FILES['userfile']['error'] != 4 is for file required to upload.

Sie können es mit Hilfe von überflüssig machen $_FILES['userfile']['error'] != 4 , dann wird dieser Fehler für die erforderliche Datei und übergeben funktioniert gut mit anderen Arten von Fehlern, wenn überhaupt falsch zurückgeben , hoffe es funktioniert für dich ....


3
2018-05-11 12:50



Verwenden Sie diesen Code im Controller, bevor Sie do_upload () aufrufen

if (is_uploaded_file($_FILES['field_name']['tmp_name'])) {
    // your code here
}

0
2017-10-13 10:57