|
|
여러개의 이미지 업로드할 수 있는 소스입니다.
참고사이트는
http://codeigniter.com/forums/viewthread/80610/
http://codeigniter.com/forums/viewthread/129011/
Controller
class Upload extends Controller { function Upload() { parent::Controller(); $this->load->helper(array('form','url','file')); } function index() { $this->load->view('upload/upload_index'); //Upload Form } function picupload() { //Load Model $this->load->model('Process_image'); $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '2048'; //2 meg $this->load->library('upload'); foreach($_FILES as $key => $value) { if( ! empty($key['name'])) { $this->upload->initialize($config); if ( ! $this->upload->do_upload($key)) { $errors[] = $this->upload->display_errors(); } else { $this->Process_image->process_pic(); } } } $data['success'] = 'Thank You, Files Upladed!'; $this->load->view('upload/upload_pictures', $data); //Picture Upload View }
Model
class Process_image extends Model { function Process_image() { parent::Model(); $this->load->library('image_lib'); //Generate random Activation code function generate_code($length = 10){ if ($length <= 0) { return false; } $code = ""; $chars = "abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789"; srand((double)microtime() * 1000000); for ($i = 0; $i < $length; $i++) { $code = $code . substr($chars, rand() % strlen($chars), 1); } return $code; } } function process_pic() { //Connect to database $this->load->database(); //Get File Data Info $uploads = array($this->upload->data()); $this->load->library('image_lib'); //Move Files To User Folder foreach($uploads as $key[] => $value) { //Gen Random code for new file name $randomcode = generate_code(12); $newimagename = $randomcode.$value['file_ext']; //Creat Thumbnail $config['image_library'] = 'GD2'; $config['source_image'] = $value['full_path']; $config['create_thumb'] = TRUE; $config['thumb_marker'] = '_tn'; $config['master_dim'] = 'width'; $config['quality'] = 75; $config['maintain_ratio'] = TRUE; $config['width'] = 175; $config['height'] = 175; $config['new_image'] = '/pictures/'.$newimagename; //$this->image_lib->clear(); $this->image_lib->initialize($config); //$this->load->library('image_lib', $config); $this->image_lib->resize(); //Move Uploaded Files with NEW Random name rename($value['full_path'],'/pictures/'.$newimagename); //Make Some Variables for Database $imagename = $newimagename; $thumbnail = $randomcode.'_tn'.$value['file_ext']; $filesize = $value['file_size']; $width = $value['image_width']; $height = $value['image_height']; $timestamp = time(); //Add Pic Info To Database $this->db->set('imagename', $imagename); $this->db->set('thumbnail', $thumbnail); $this->db->set('filesize', $filesize); $this->db->set('width', $width); $this->db->set('height', $height); $this->db->set('timestamp', $timestamp); //Insert Info Into Database $this->db->insert('pictures'); } }
View
Table
CREATE TABLE IF NOT EXISTS `img_pictures` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `imagename` varchar(100) NOT NULL, `thumbnail` varchar(100) DEFAULT NULL, `folder` varchar(255) DEFAULT NULL, `filesize` int(11) NOT NULL, `width` int(11) NOT NULL, `height` int(11) NOT NULL, `thumb_width` int(11) DEFAULT NULL, `thumb_height` int(11) DEFAULT NULL, `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
'Web Programming > PHP' 카테고리의 다른 글
Flex와 PHP(CodeIgniter+ZendAMF) 연동하기 (3) | 2010.10.02 |
---|---|
CodeIgniter 라이브러리에 ZendAMF 추가하기 (0) | 2010.09.29 |
CentOS 5.2 APM 구축 매뉴얼 (2) | 2009.11.03 |
파라미터가 UTF-8 인지 검사 (0) | 2009.04.24 |
PHP 사용자를 위한 EditPlus 설정 (3) | 2009.02.27 |