2013-01-24 15 views
7

Próbuję napisać kod gdzie mogę złożyć formularz wprowadzić zawartość w bazie danych, w tym samym czasie wykonać wysyłania pliku i go przechowywać w folderze wewnątrz mojego serweraforma CodeIgniter przesłać z pliku przesłać

lokalizacja folderu nazywa przesłane który znajduje się u podstaw mojej strony

tutaj jest mój kod

kontroler (site.php)

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Site extends CI_controller { 

public function __construct() 
{ 
    parent::__construct(); 
    // Your own constructor code 
    $this->load->model("site_model"); 
    $this->load->helper(array('form', 'url')); 
} 

public function cmain($type,$page) 
{ 
    $data = $this->_initialize_data(); //this is just a bunch of variables that im calling in another function 
    $data['type'] = $type; 
    $data['page'] = $page; 
    $this->load->vars($data); 
    $this->load->view('site/cmain'); 
} 


public function m1() 
     {    

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

      if(isset($_POST['m1'])) 
      { 
       $suffix = $this->input->post("suffix"); 
       $fn = $this->input->post("fn"); 
       $mn = $this->input->post("mn"); 
       $ln = $this->input->post("ln"); 


       $newdata = array('suffix'=>$suffix, 
           'fn'=>$fn, 
           'mn'=>$mn, 
           'ln'=>$ln, 

           ); 
       //this code is for the file upload 
          $config['upload_path'] = 'uploads'; 
          $config['allowed_types'] = '*'; 

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

          $data = array('upload_data' => $this->upload->data()); 
       //end of file upload codes     

       $this->db->insert('myself', $newdata); 

       redirect(base_url() . "site/complaint");  

      } 

     } 

widok (cmain .php)

<form action="<?php echo base_url();?>site/m1" name="details" id="details" method="post" enctype="multipart/form-data"> 
     <table class='table' width="100%"> 
      <tr> 
      <td colspan='2'> 
       <b><font color="#3B608C">Personal Information</font></b> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Suffix (e.g. Jr., III) 
      </td> 
      <td> 
       <input type="text" name="suffix" id="suffix" value=""> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       First Name* 
      </td> 
      <td> 
       <input type="text" name="fn" id="fn" value=""> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Middle Name* 
      </td> 
      <td> 
       <input type="text" name="mn" id="mn" value=""> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Last Name* 
      </td> 
      <td> 
       <input type="text" name="ln" id="ln" value=""> 
      </td> 
     </tr> 
</table> 

      <table> 
     <tr> 
     <td width="50%"> 
     Please attach documents pertinent to these complaints. <br> 
     (Attach a zip file if more than one document)<br> 
     </td> 
     <td align="center"> 
     <input name = "userfile" type="file" class="input-xlarge" id = "userfile" /> 
     </td></tr> 
     </table> 
     <input type="submit" value="Submit Form" class="pull-right" id="submit" name="m1"/> 
</form> 

słupki formularz został prawidłowo osadzony w bazie danych tak jak przyrostek, fn, LN i mn jednak isnt przesyłanie plików pracy

Starałem realizować to, co próbek Docs CodeIgniter i tylko mam linie, które myślę, że potrzebuję

czy robię coś nie tak?

dzięki

+1

spróbować za pomocą valida klasa klasy. a następnie ustawić wysyłanie obrazu jako niestandardowe wywołanie zwrotne. –

Odpowiedz

4

wreszcie dostał to działa

użyłem tego dla części Prześlij plik

   //start of file upload code 
       $config['upload_path'] = './uploads/'; 
       $config['allowed_types'] = '*'; 
       $this->load->library('upload', $config); 
       $this->upload->do_upload(); 
       $data = $this->upload->data(); 
       //end of file upload code 

i zmienił

<form action="<?php echo base_url();?>site/m1" name="details" id="details" method="post" enctype="multipart/form-data"> 

do

<?php echo form_open_multipart('site/c_upload');?> 
+0

co to jest c_upload? nie widzę w kontrolerze funkcji o nazwie c_upload –

0
  • Czy ustawiłeś uprawnienia do zapisu dla folderu 'uploads'? (przykład: php.net/manual/en/function.chmod.php)

  • Zawsze rozwijaj się przy użyciu testów. Mam poniżej bloku kodu z this url

    if (! $this->upload->do_upload()) 
    { 
        $error = array('error' => $this->upload->display_errors()); 
    
        $this->load->view('upload_form', $error); 
    } 
    
1

myślę, że trzeba mieć do ustawiania preferencji przesłać plik

$config['upload_path'] = './uploads/'; 
$config['allowed_types'] = 'gif|jpg|png'; 
$config['max_size'] = '100'; 
$config['max_width'] = '1024'; 
$config['max_height'] = '768'; 

Form Helper

$this->load->helper(array('form', 'url')); 

For further detail have a look

Powiązane problemy