プロジェクトの要件を確認してください。データベースに保存するかどうかを選択し、ファイルの種類、ファイル サイズ、サムネイルとサムネイルのサイズを指定できます。
- class AttachModel extends Model{
-
- /**
- * 添付ファイルのアップロード
- * @param string $type ファイル形式: jpg、png
- * @param int $maxsize 最大アップロード容量: デフォルト 100Kb
- * @param string $model アップロードモジュール
- * @param bool $insert データベースを書き込むかどうか
- * @param bool $thumb サムネイルを生成するかどうか
- * @param string $wh サムネイルの幅と高さ
- * 例: $upload->upload(null,102400,APP_NAME,true,true,array('300 ' ,'225'));
- */
- public function Upload($type = null, $maxsize = '102400', $model = null, $insert = true , $thumb = false, $wh = array('160', '120')){
- //アップロードクラスをインポートします
- import('ORG.NET.UploadFile');
- $upload = new UploadFile();
- $ Upload->maxSize = $maxsize;
- if ($type){
- $type =explode(',', $type);
- $upload->allowExts = $type;
- }else{
- $upload- > ;allowExts = array('jpg','png','gif','jpeg');
- }
- if ($model){
- $upload->savePath = '../Public/Uploads/'。 $model.'/';
- }else{
- $upload->savePath = '../Public/Uploads/';
- }
- if ($thumb){
- $upload->thumb = true;
- $アップロード ->thumbPrefix = 'zj_';
- $upload->thumbMaxWidth = $wh[0];
- $upload->thumbMaxHeight = $wh[1]
- }
- $upload->saveRule = uniqid; / /アップロード画像の命名規則
- if (!$upload->upload()) {
- return $upload->getErrorMsg();
- }else{
- $uploadlist = $upload->getUploadFileInfo();
- }
- if ($insert){
- return $this->_insert($uploadlist);
- }else{
- return $uploadlist;
- }
- }
- /*
- * アップロードされた添付ファイルは、添付ファイルと添付ファイルに必要なデータに統合されます。テーブルに格納され、配列を返します
- * */
- private function _insert($uploadlist){
- $j = count($uploadlist);
- $v = array();
- foreach ($uploadlist as $key => $value)
- {
- $v[$key]['name'] = $value['name'];
- $v[$key]['hashname'] = $value['savename'];
- $v [$key][ 'savepath'] = substr($value['savepath'], 2);
- $v[$key]['bsize'] = $value['size'];
- $v[$key ]['user_id' ] = $_SESSION[C('USER_AUTH_KEY')];
- $v[$key]['create_time'] = time();
- $v[$key]['model_name'] = APP_NAME;
- $this->add($v[$key]);
- if($this->thumb)
- {
- $v[$key]['prefix'] = $this->thumbPrefix
- }
- $v[$ key]['id'] = M('Attach')->getLastInsID();
- }
- return $v;
- }
-
- }
コードをコピーします
- DROP TABLE IF EXISTS `zj_attach`;
- CREATE TABLE `zj_attach` (
- `id` int(10) NOT NULL auto_increment,
- `name` varchar(100) NOT NULL COMMENT '添付ファイル名',
- `hashname ` varchar(100) デフォルト NULL,
- `status` tinyint(1) デフォルト '1' COMMENT '添付ステータス {1: 有効、0: 無効}',
- `savepath` varchar(100) デフォルト NULL COMMENT 'ストレージアドレス' ,
- `bsize` varchar(100) デフォルト NULL COMMENT '添付ファイルのサイズ',
- `model_name` varchar(50) デフォルト NULL COMMENT '所属するモジュール',
- `user_id` int(10) デフォルト NULL COMMENT 'アップロードユーザーid',
- `create_time` int(10) デフォルト NULL COMMENT 'アップロード時間',
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
コードをコピー
|