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(); } }
保存上传文件的文件夹
不要忘记在根目录建立个files文件夹,并给他写入权限。
第四步,文件列表
成功上传后,我们需要更新文件列表,方便修改。
Javascript部分
打开site.js,在后面追加:
function refresh_files() { $.get('./upload/files/') .success(function (data){ $('#files').html(data); }); }
Jquery的简单应用。Ajax取得指定url的内容,填充到#files的div里。
控制器部分
不多说了。
public function files() { $files = $this->files_model->get_files(); $this->load->view('files', array('files' => $files)); }
调用模型的方法取得数据,再加载到files视图里显示。
模型部分
public function get_files() { return $this->db->select() ->from('files') ->get() ->result(); }
视图部分
新建files.php视图
<?php if (isset($files) && count($files)) { ?> <?php foreach ($files as $file) { ?> Delete <?php echo $file->title?> <?php echo $file->filename?> <?php } ?>
<?php } else { ?> No Files Uploaded <?php } ?>
删除文件
Javascript部分
$('.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) { files = $(#files); if (data.status === "success") { link.parents('li').fadeOut('fast', function() { $(this).remove(); if (files.find('li').length == 0) { files.html('<p>No Files Uploaded</p>'); } }); } else { alert(data.msg); } } }); } });
控制器部分
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)); }
模型部分
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_file($file_id) { return $this->db->select() ->from('files') ->where('id', $file_id) ->get() ->row(); }
嗯,简单的应用。没有涉及的权限、上传的进度条等。