<?php class Album extends RZ_Controller { function Album () { parent::Controller(); $this->_get_user(); } function index () { $this->browser(); } function add () { if ( !empty( $_POST['data'] ) ) { $data = $_POST['data']; $this->load->model( 'Mdl_album' ); $this->Mdl_album->user_id = $this->user_id; $album_id = $this->Mdl_album->add( $data ); if ( $album_id ) { $this->add_image( $album_id ); $this->_msg( '', true ); } else { $this->_msg( '' ); } } else { $this->load->view( 'album/add_album' ); } } function del () { if ( !empty( $_POST['to_del'] ) ) { $this->load->model( 'Mdl_album' ); $this->load->model( 'Mdl_image' ); $this->Mdl_album->user_id = $this->user_id; $this->Mdl_image->user_id = $this->user_id; $to_del = explode( ',', $_POST['to_del'] ); foreach ( $to_del as $album_id ) { $this->Mdl_album->album_id = $album_id; if ( $this->Mdl_album->del() ) { $this->Mdl_image->album_id = $album_id; $this->Mdl_image->after_album_del(); } } $this->_msg( '', true ); } } function edit () { if ( !empty( $_POST['data'] ) ) { $data = $_POST['data']; $album_id = intval( $data['album_id'] ); $this->load->model( 'Mdl_album' ); $this->Mdl_album->user_id = $this->user_id; $this->Mdl_album->album_id = $album_id; if ( $album_id and !empty( $data['album_name'] ) ) { if ( !$this->Mdl_album->rename_check( array( 'album_name' => $data['album_name'] ), array( 'album_id' => $album_id ) ) ) { $this->Mdl_album->update( $data ); $this->_img( '', true ); } else { $this->_img( '相册名称已被使用' ); } } $this->_img( '相册名称不能为空' ); } else if ( !empty( $_POST['album_id'] ) ) { $album_id = intval( $_POST['album_id'] ); $this->load->model( 'Mdl_album' ); $this->Mdl_album->user_id = $this->user_id; $data = array(); $data['album'] = $this->Mdl_album->get_one( array( 'fields' => array( 'album_id', 'album_name', 'remark' ), 'conditions' => array( 'album_id' => $album_id ) )); //echo '<pre>';print_r($data['album']);echo '</pre>'; $this->load->model( 'Mdl_image' ); $this->Mdl_image->user_id = $this->user_id; $data['images'] = $this->Mdl_image->find( array( 'fields' => array( 'image_id', 'name', 'path' ), 'conditions' => array( 'album_id' => $album_id ) )); $this->load->view( 'album/edit_album', $data ); } } function set_cover ( $album_id, $image_id ) { $this->load->model( 'Mdl_album' ); $this->load->model( 'Mdl_image' ); $image = $this->Mdl_image->get_one( array( 'fields' => array( 'path' ), 'conditions' => array( 'image_id' => $image_id ) )); $this->Mdl_album->user_id = $this->user_id; $this->Mdl_album->album_id = $album_id; if ( $this->Mdl_album->set_cover( $image['path'] ) ) { } else { } } function browser ( $album_id = 0 ) { $album_id = intval( $album_id ); $data = array(); if ( empty( $album_id ) ) { $this->load->model( 'Mdl_album' ); $data['albums'] = $this->Mdl_album->find( array( 'fields' => array( 'album_id', 'album_name', 'cover_image' ), 'conditions' => array( 'created_by' => $this->user_id ) )); $this->load->view( 'album/broswer_album', $data ); } else { $this->load->model( 'Mdl_image' ); $data['album_id'] = $album_id; $data['images'] = $this->Mdl_image->find( array( 'fields' => array( 'image_id', 'name', 'path' ), 'conditions' => array( 'album_id' => $album_id ) )); $this->load->view( 'album/broswer_image', $data ); } } function add_image ( $album_id = 0 ) { $album_id = intval( $album_id ); if ( empty( $_POST['album_id'] ) ) { if ( empty( $album_id ) ) { $this->_msg( ERROR_ALBUM_NOT_EXISTS ); } } else { $album_id = intval( $_POST['album_id'] ); } $this->load->model( 'Mdl_image' ); $this->Mdl_image->user_id = $this->user_id; $this->_check_image(); $images = $this->_move_image( $album_id ); //echo '<pre>';print_r($images);echo '</pre>';exit; foreach ( $images as $image ) { $data = $image; $data['album_id'] = $album_id; $this->Mdl_image->add( $data ); } $this->_msg( '', true ); } function del_image () { if ( !empty( $_POST['to_del'] ) ) { $this->load->model( 'Mdl_image' ); $this->Mdl_image->user_id = $this->user_id; $to_del = explode( ',', $_POST['to_del'] ); foreach ( $to_del as $image_id ) { $this->Mdl_image->image_id = $image_id; $image = $this->Mdl_image->get_one( array( 'fields' => array( 'name', 'path' ), 'conditions' => array( 'image_id' => $this->Mdl_image->image_id, 'created_by' => $this->user_id ) )); if ( $this->Mdl_image->del() ) { unlink( ROOTPATH.'/'.$image['path'] ); } } $this->_msg( '', true ); } } function _check_image () { $file_maxsize = 2 * 1024 * 1024;//2M $file_ext = array( 'jpg', 'jpeg', 'bmp', 'gif', 'png' ); foreach ( $_FILES as $file ) { if ( $file['size'] > $file_maxsize ) { $this->_msg( $file['name'].' '.ERROR_IMAGE_SIZE_EXCEED ); } $type = strtolower( $file['type'] ); $arr = explode( '/', $type ); if ( count( $arr ) < 2 or 'image' != $arr[0] or !in_array( $arr[1], $file_ext ) ) { $this->_msg( ERROR_IMAGE_TYPE ); } } } function _move_image ( $album_id ) { $file_path = 'suppliers'; if ( !is_dir( $file_path ) ) { mkdir( $file_path ); } $file_path .= '/userfiles'; if ( !is_dir( $file_path ) ) { mkdir( $file_path ); } $file_path .= '/'.$this->user_id; if ( !is_dir( $file_path ) ) { mkdir( $file_path ); } $file_path .= '/albums'; if ( !is_dir( $file_path ) ) { mkdir( $file_path ); } //echo '<pre>';print_r($_FILES);echo '</pre>';exit; $images = array(); $counter = 0; $root = dirname(__FILE__); foreach ( $_FILES as $file ) { if ( 0 == $file['error'] ) { $ext = explode( '.', $file['name'] ); $len = count( $ext ); if ( $len < 2 ) { continue; } $name = $this->_getRandoms().'.'.$ext[$len-1]; if ( move_uploaded_file( $file['tmp_name'], $file_path.'/'.$name ) ) { $images[$counter]['name'] = $file['name']; $images[$counter]['path'] = $file_path.'/'.$name; $img_info = getimagesize( ROOTPATH.'/'.$file_path.'/'.$name ); $images[$counter]['width'] = $img_info[0]; $images[$counter]['height'] = $img_info[1]; $counter++; } } } return $images; } function _getRandoms( $length = 10 ) { $arr1 = range( 0, 9 ); $arr2 = range( 'a', 'z' ); $arr3 = range( 'A', 'Z' ); $pattern = array_merge( $arr1, $arr2, $arr3 ); //合并数组 $len = count( $pattern ) - 1; $key = ''; for($i = 0; $i < $length; $i ++) { $key .= $pattern[mt_rand(0, $len)]; //生成php随机数 } return $key; } }
