EllisLab text mark
Advanced Search
     
I am uploading a profile image into a database but they do not upload into my uploads folder
Posted: 15 November 2012 06:51 PM   [ Ignore ]
Joined: 2012-11-04
22 posts

This was working for me at one stage, until when I was changing other parts of my code and it decided not to upload to my images folder any longer.

Here is my controller:

<?php
class HomeProfile extends CI_Controller 
{
 
 
  
function HomeProfile()
  {
    parent
::__construct();
    
$this->load->model("profiles");
    
$this->load->model("profileimages");
    
$this->load->helper(array('form''url'));
  
}

  
  
function upload()
  
{
   $config[
'upload_path''./web-project-jb/assets/uploads/';
   
$config['allowed_types''gif|jpg|jpeg|png';
   
$config['max_size''10000';
   
$config['max_width''1024';
   
$config['max_height''768';
  
   
$this->load->library('upload'$config);
   
$img $this->session->userdata('img');
   
$username $this->session->userdata('username');
   
$this->profileimages->putProfileImage($username$this->input->post("profileimage"));
   
//fail show upload form
   
if (! $this->upload->do_upload())
   
{
  
    $error 
= array('error'=>$this->upload->display_errors());
    
    
$username $this->session->userdata('username');
    
     
    
$viewData['username'$username;
    
$viewData['profileText'$this->profiles->getProfileText($username);
     
    
$this->load->view('shared/header');
    
$this->load->view('homeprofile/homeprofiletitle'$viewData);
    
$this->load->view('shared/nav');
    
$this->load->view('homeprofile/upload_fail'$error);
    
$this->load->view('homeprofile/homeprofileview'$viewData, array('error' => ' ' ));
    
$this->load->view('shared/footer');
    
    
//redirect('homeprofile/index');
  
   
}
  
   
else
   
{
    
//successful upload so save to database
    
    
    
$file_data $this->upload->data();
    
    
    
$data['img'base_url().'./web-project-jb/assets/uploads/'.$file_data['file_name'];
    
// you may want to delete the image from the server after saving it to db
    // check to make sure $data['full_path'] is a valid path
    // get upload_sucess.php from link above
    //$image = chunk_split( base64_encode( file_get_contents( $data['file_name'] ) ) );
    

    
    
$this->username $this->session->userdata('username');
   
    
$data['profileimages'$this->profileimages->getProfileImage($username);
     
    
    
$viewData['username'$username;
    
$viewData['profileText'$this->profiles->getProfileText($username);
    
    
$username $this->session->userdata('username');
    
    
redirect('homeprofile/index');
   
}
  
  }
   
 
  
  
function index()
  
{
   
   $username 
$this->session->userdata('username');
   
   
$data['profileimages'$this->profileimages->getProfileImage($username);
    
   
$viewData['username'$username;
   
$viewData['profileText'$this->profiles->getProfileText($username);
    
   
$this->load->view('shared/header');
   
$this->load->view('homeprofile/homeprofiletitle'$viewData);
   
$this->load->view('shared/nav');
   
//$this->load->view('homeprofile/upload_form', $data);
   
$this->load->view('homeprofile/homeprofileview'$data$viewData, array('error' => ' ' ) );
   
$this->load->view('shared/footer');
  
}
 

Here is my view :

<div id="maincontent">
   <
div id="primary"
   
<?//=$error;?>
    
<?//=$img;?> 
    
<h3><?="Profile Image"?></h3>
     <
img src="<?php echo'$img'?>" width='300' height='300'/>
      
<?=form_open_multipart('homeprofile/upload');?>
        
<input type="file" name="img" value=""/>
        
<?=form_submit('submit''upload')?>
        <?
=form_close();?> 
        <?php 
if (isset($error)) echo $error;?>
      
</div
    </
div

And one other thing. even when the folder upload was working, when I uploaded an image just the outline of the image would appear as if corrupt. why could this be?

 

 

 
Posted: 15 November 2012 07:54 PM   [ Ignore ]   [ # 1 ]   [ Rating: 0 ]
Avatar
Joined: 2009-02-19
3801 posts

What is this doing just before you do_upload()?

$this->profileimages->putProfileImage($username$this->input->post("profileimage")); 

Just curious because you are using POST there, and files don’t get transmitted via $_POST.  They are in the superglobal $_FILES array.

Are you receiving any errors?

 Signature 
 
Posted: 15 November 2012 10:42 PM   [ Ignore ]   [ # 2 ]   [ Rating: 0 ]
Joined: 2012-11-04
22 posts

I’m not actually getting any errors - this is supposed to put the image into the profileimages database which it seems to do but the getProfileImage does not seem to do the same when displaying the image to the page. Nor does any file that I do upload go into the uploads folder. This part was working before with the same code not it no longer seems to for some reason. I’m very anxious to make some progress with this issue