2013-01-24 101 views
7

我尝试写代码,我可以提交一个表单在数据库中输入内容,同时进行文件上传,并将它存储在一个文件夹在我的服务器里笨表格文件提交上传

文件夹的位置被称为其位于我的网站

这里的根上传是我的代码

控制器(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");  

      } 

     } 

视图(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> 

形式帖子正确像后缀,FN,LN和MN 但是文件上传心不是工作

我尽力遵循什么笨文档样本,只有数据库得到了线我想我需要

我做错了什么?

感谢

+1

尝试使用valida重刑班。然后将图片上传设置为自定义回调。 –

回答

4

终于得到它的工作

我用它进行文件上传部分

   //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 

,并改变了

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

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

什么是c_upload?我在控制器中看不到名为c_upload的函数 –

0
  • 您是否为'uploads'文件夹设置了写入权限? (例如:php.net/manual/en/function.chmod.php)

  • 总是做测试驱动开发。我下面的代码块从this url

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

我认为你必须设置文件上传偏好

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

表单辅助

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

For further detail have a look