2013-03-08 78 views
0

我有一个应用程序,neede照片上传,已在codeigniter中完成,在本地主机上正常工作,但它不能在线工作。Codeigniter图像上传不能在线工作

查看网页代码:

<div> 
        <form id="uploadimage" method="POST" name="uploadimage" action="<?php echo base_url(); ?>onebachhpan/savephoto" enctype="multipart/form-data"> 
        <input type="file" name="userfile" id="userfile" accept="image/*" /><br/><br/> 
        <input type="submit" class="button_example" id="upload_button" name="upload_button" value="Upload"/> 
      </form> 
      <br/> 
      <form id="removeimage" method="POST" name="removeimage" action="<?php echo base_url(); ?>onebachhpan/removephoto" enctype="multipart/form-data"> 
        <input type="submit" style="position: absolute; left: 100px; top: 64px; " class="button_example" id="delete_button" name="delete_button" value="Delete"/> 
      </form> 
      </div> 

以下为图片上传控制器代码: 这是工作的罚款在localhost:

控制器代码:

function savephoto() 
    { 
     $this->load->library('session'); 
     $this->load->library('image_lib'); 
     $config['image_library'] = 'gd2'; 
     $config['upload_path'] = './profilepic/'; //location to store image 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $this->load->library('upload', $config); 
     if (! $this->upload->do_upload('userfile')) 
     { 
      $error = array('error' => $this->upload->display_errors()); 
     redirect(base_url().'uploaderror'); 


     } 
     else 
     { 
      $photo = $this->upload->data(); 
      $data['photo'] = $photo;  
      $id = $this->session->userdata('MemberId'); 
      $filename = $photo['file_name']; 
      $extension = $photo['file_ext']; 

      $this->load->model('profile_model'); 
      $this->profile_model->photo($extension,$id); 



      // echo "<pre>";print_r($photo); 
      $newpath = './profilepic/'.$id.$extension; 

      $config['source_image'] = './profilepic/'.$filename; 
      $config['overwrite']=true; 

      $config['new_image'] = $newpath; 

      $config['width'] = '170'; 
      $config['height'] = '240'; 
      $config['maintain_ratio'] = true; 


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

      $this->image_lib->initialize($config); 
      $this->image_lib->resize(); 
      unlink('./profilepic/'.$filename); 
      //$this->load->view('onebachhpan_index'); 
      redirect(base_url().'profile'); 

     } 
    } 
+0

你有什么试图解决这个问题的?控制器中$ _FILES的值是多少?你是否打开错误报告来查看发生了什么问题? – mcryan 2013-03-08 07:49:11

+0

我上传单个文件,因此我不需要$ _FILES,上面的代码在localhost上工作也很完美,但是当我将它部署到在线服务器时,photouploading无法正常工作......您可以在[link] (http://one.bachhpan.org/) – 2013-03-08 08:40:39

+1

如果您上传单个文件或多个文件,则会将数据发送到PHP的$ _FILES变量。 http://php.net/manual/en/reserved.variables.files.php – mcryan 2013-03-08 08:49:39

回答

0

试试这个例子,它完美的工作

//File name 
$cat_image_name = $_FILES["cat_image"]["name"] ; 

$date_added = strtotime(date("m/d/Y H:i:s")); 


//File uploading params 
$config['upload_path'] = './uploaded_files/categories'; 
$config['allowed_types'] = 'gif|jpg|png'; 
$config['file_name'] = $date_added."_ipad"; 
$config['remove_spaces'] = TRUE; 

//Loading Library - File Uploading 
$this->load->library('upload', $config); 

//Upload the image 
if (!empty($cat_image_name)) 
{ 
     $this->upload->do_upload('cat_image'); 
     $data = array('upload_data' => $this->upload->data()); 
     $category_image_ipad = $data['upload_data']['file_name']; 
     $img_extension = $data['upload_data']['file_ext']; 
}