2017-08-14 1 views
1

Normalerweise können wir die Formulardaten in Codeigniter mit $this->input->get('field_name') oder $this->input->post('field_name') erhalten, und das ist in Ordnung.Codeigniter Upload Dateiname

Im rohen PHP verwenden wir $_FILES["fileToUpload"]["name"], um den Dateinamen zu erhalten, den der Benutzer versucht, hochzuladen.

Meine Frage ist: Gibt es einen Codeigniter Weg, um den Namen der Datei zu erhalten, die hochgeladen werden muss?

Ich versuche zu sagen, dass ich den Dateinamen abrufen muss, den der Benutzer versucht, vor dem Speichern in meinem Server mit Codeigniter Bibliothek anstelle der Verwendung von PHP globalen $_FILES Variable.

<?php 

class Upload extends CI_Controller { 

     public function __construct() 
     { 
       parent::__construct(); 
       $this->load->helper(array('form', 'url')); 
     } 

     public function index() 
     { 
       $this->load->view('upload_form', array('error' => ' ')); 
     } 

     public function do_upload() 
     { 
       $config['upload_path']   = './uploads/'; 
       $config['allowed_types']  = 'gif|jpg|png'; 
       $config['max_size']    = 100; 
       $config['max_width']   = 1024; 
       $config['max_height']   = 768; 

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

       // get the user submitted file name here 

       if (! $this->upload->do_upload('userfile')) 
       { 
         $error = array('error' => $this->upload->display_errors()); 

         $this->load->view('upload_form', $error); 
       } 
       else 
       { 
         $data = array('upload_data' => $this->upload->data()); 

         $this->load->view('upload_success', $data); 
       } 
     } 
} 
?> 

Antwort

0
$upload_data = $this->upload->data(); 
$file_name = $upload_data['file_name']; 

Hier ist die 2-Version doc für 2 ist und für 3

, wenn Sie den Dateinamen im Backend erhalten möchten:

$this->upload->file_name Es basiert arbeitet an system/library/upload.php dieser Funktion.

public function data() 
{ 
    return array (
        'file_name'   => $this->file_name, 
        'file_type'   => $this->file_type, 
        ... 
       ); 
} 

Wenn Sie den Dateinamen bekommen ...

Vor dem Server Speichern ... Sie haben Arbeit in Javascript

<?php echo "<input type='file' name='userfile' size='20' onchange='changeEventHandler(event);' />"; ?>

onchange Ereignis in javascript:

<script> 
function changeEventHandler(event){ 
    alert(event.target.value); 
} 
</script> 
+0

Kann ich '$ this-> upload-> data()' vor dem Aufruf von '$ this-> upload-> do_upload ('userfile')' aufrufen? –

+0

Ich habe meine Antwort @MahbubulIslam bearbeitet ... Erwarten Sie, den Dateinamen zu erhalten, bevor Sie die Schaltfläche senden? oder nachdem ich das Formular gesendet habe – Nawin

+0

Ich versuche zu sagen, dass ich den Dateinamen wissen muss, den der Benutzer versucht, zu laden, bevor er versucht, es auf meinem Server hochzuladen. –

Verwandte Themen