/    Sign up×
Community /Pin to ProfileBookmark

uploading/inserting images problem

Hi

I’m using codeigniter 2.1.2 and I was busy doing a tutorial called How to Upload Files with CodeIgniter and AJAX, I did everything like it said but it’s not uploading or saving the content.

this is the upload controller

[code]
<?php

class Upload extends CI_Controller
{

public function __construct()
{
parent::__construct();
$this->load->model(‘files_model’);
$this->load->database();
$this->load->helper(‘url’);
}

public function index()
{
$this->load->view(‘upload’);
}

public function upload_file()
{
$status = “”;
$msg = “”;
$file_element_name = ‘userfile’;

if (empty($_POST[‘title’]))
{
$status = “error”;
$msg = “Please enter a title”;
}

if ($status != “error”)
{
$config[‘upload_path’] = ‘./files/’;
$config[‘allowed_types’] = ‘gif|jpg|png|doc|txt’;
$config[‘max_size’] = 1024 * 8;
$config[‘encrypt_name’] = TRUE;

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

if (!$this->upload->do_upload($file_element_name))
{
$status = ‘error’;
$msg = $this->upload->display_errors(”, ”);
}
else
{
$data = $this->upload->data();
$file_id = $this->files_model->insert_file($data[‘file_name’], $_POST[‘title’]);
if($file_id)
{
$status = “success”;
$msg = “File successfully uploaded”;
}
else
{
unlink($data[‘full_path’]);
$status = “error”;
$msg = “Something went wrong when saving the file, please try again.”;
}
}
@unlink($_FILES[$file_element_name]);
}
echo json_encode(array(‘status’ => $status, ‘msg’ => $msg));
}

public function files()
{
$files = $this->files_model->get_files();
$this->load->view(‘files’, array(‘files’ => $files));
}

public function delete_file($file_id)
{
if ($this->files_model->delete_file($file_id))
{
$status = ‘success’;
$msg = ‘File successfully deleted’;
}
else
{
$status = ‘error’;
$msg = ‘Something went wrong when deleteing the file, please try again’;
}
echo json_encode(array(‘status’ => $status, ‘msg’ => $msg));
}

}
[/code]

This is my files_model

[code]
<?php

class Files_Model extends CI_Model {

public function insert_file($filename, $title)
{
$data = array(
‘filename’ => $filename,
‘title’ => $title
);
$this->db->insert(‘files’, $data);
return $this->db->insert_id();
}

public function delete_file($file_id)
{
$file = $this->get_file($file_id);
if (!$this->db->where(‘id’, $file_id)->delete(‘files’))
{
return FALSE;
}
unlink(‘./files/’ . $file->filename);
return TRUE;
}

public function get_files()
{
return $this->db->select()
->from(‘files’)
->get()
->result();
}

public function get_file($file_id)
{
return $this->db->select()
->from(‘files’)
->where(‘id’, $file_id)
->get()
->row();
}

}
[/code]

This is my upload view

[code]
<!doctype html>
<html>
<head>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js”></script>
<script src=”<?php echo base_url()?>js/site.js”></script>
<script src=”<?php echo base_url()?>js/ajaxfileupload.js”></script>
<link href=”<?php echo base_url()?>css/style.css” rel=”stylesheet” />
</head>
<body>
<h1>Upload File</h1>
<p class=”error”></p>
<form method=”post” action=”<?php echo site_url(‘/upload/upload’)?>” id=”upload_file”>
<label for=”title”>Title</label>
<br />
<input type=”text” name=”title” id=”title” value=”” />
<br />
<label for=”userfile”>File</label>
<br />
<input type=”file” name=”userfile” id=”userfile” size=”20″ />
<br />
<input type=”submit” name=”submit” id=”submit” />
</form>
<h2>Files</h2>
<div id=”files”></div>
</body>
</html>
[/code]

This is my files view

[code]
<?php
if (isset($files) && count($files))
{
?>
<ul>
<?php
foreach ($files as $file)
{
?>
<li class=”image_wrap”>
<a href=”#” class=”delete_file_link” data-file_id=”<?php echo $file->id?>”>Delete</a>
<strong><?php echo $file->title?></strong>
<br />
<?php echo $file->filename?>
</li>
<?php
}
?>
</ul>
</form>
<?php
}
else
{
?>
<p>No Files Uploaded</p>
<?php
}
?>
[/code]

this is site.js

[code]
$(function() {
$(‘#upload_file’).submit(function(e) {
e.preventDefault();
$.ajaxFileUpload({
url :’./upload/upload_file/’,
secureuri :false,
fileElementId :’userfile’,
dataType : ‘json’,
data : {
‘title’ : $(‘#title’).val()
},
success : function (data, status)
{
if(data.status != ‘error’)
{
$(‘#files’).html(‘<p>Reloading files…</p>’);
refresh_files();
$(‘#title’).val(”);
}
alert(data.msg);
}
});
return false;
});

refresh_files();

$(‘.delete_file_link’).live(‘click’, function(e) {
e.preventDefault();
if (confirm(‘Are you sure you want to delete this file?’))
{
var link = $(this);
$.ajax({
url : ‘./upload/delete_file/’ + link.data(‘file_id’),
dataType : ‘json’,
success : function (data)
{
if (data.status == “success”)
{
link.parents(‘li’).fadeOut(‘fast’, function() {
$(this).remove();
if ($(‘#files li’).length == 0)
{
$(‘#files’).html(‘<p>No Files Uploaded</p>’);
}
});
}
else
{
alert(data.msg);
}
}
});
}
});
});

function refresh_files()
{
$.get(‘./upload/files/’)
.success(function (data){
$(‘#files’).html(data);
});
}
[/code]

to post a comment
PHP

0Be the first to comment 😎

×

Success!

Help @cerberus478 spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.17,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...