ThinkPHP は、画像がデータベース クラスに保存されているかどうかをアップロードします。

WBOY
リリース: 2016-07-25 09:05:55
オリジナル
1058 人が閲覧しました
プロジェクトの要件を確認してください。データベースに保存するかどうかを選択し、ファイルの種類、ファイル サイズ、サムネイルとサムネイルのサイズを指定できます。
  1. class AttachModel extends Model{
  2. /**
  3. * 添付ファイルのアップロード
  4. * @param string $type ファイル形式: jpg、png
  5. * @param int $maxsize 最大アップロード容量: デフォルト 100Kb
  6. * @param string $model アップロードモジュール
  7. * @param bool $insert データベースを書き込むかどうか
  8. * @param bool $thumb サムネイルを生成するかどうか
  9. * @param string $wh サムネイルの幅と高さ
  10. * 例: $upload->upload(null,102400,APP_NAME,true,true,array('300 ' ,'225'));
  11. */
  12. public function Upload($type = null, $maxsize = '102400', $model = null, $insert = true , $thumb = false, $wh = array('160', '120')){
  13. //アップロードクラスをインポートします
  14. import('ORG.NET.UploadFile');
  15. $upload = new UploadFile();
  16. $ Upload->maxSize = $maxsize;
  17. if ($type){
  18. $type =explode(',', $type);
  19. $upload->allowExts = $type;
  20. }else{
  21. $upload- > ;allowExts = array('jpg','png','gif','jpeg');
  22. }
  23. if ($model){
  24. $upload->savePath = '../Public/Uploads/'。 $model.'/';
  25. }else{
  26. $upload->savePath = '../Public/Uploads/';
  27. }
  28. if ($thumb){
  29. $upload->thumb = true;
  30. $アップロード ->thumbPrefix = 'zj_';
  31. $upload->thumbMaxWidth = $wh[0];
  32. $upload->thumbMaxHeight = $wh[1]
  33. }
  34. $upload->saveRule = uniqid; / /アップロード画像の命名規則
  35. if (!$upload->upload()) {
  36. return $upload->getErrorMsg();
  37. }else{
  38. $uploadlist = $upload->getUploadFileInfo();
  39. }
  40. if ($insert){
  41. return $this->_insert($uploadlist);
  42. }else{
  43. return $uploadlist;
  44. }
  45. }
  46. /*
  47. * アップロードされた添付ファイルは、添付ファイルと添付ファイルに必要なデータに統合されます。テーブルに格納され、配列を返します
  48. * */
  49. private function _insert($uploadlist){
  50. $j = count($uploadlist);
  51. $v = array();
  52. foreach ($uploadlist as $key => $value)
  53. {
  54. $v[$key]['name'] = $value['name'];
  55. $v[$key]['hashname'] = $value['savename'];
  56. $v [$key][ 'savepath'] = substr($value['savepath'], 2);
  57. $v[$key]['bsize'] = $value['size'];
  58. $v[$key ]['user_id' ] = $_SESSION[C('USER_AUTH_KEY')];
  59. $v[$key]['create_time'] = time();
  60. $v[$key]['model_name'] = APP_NAME;
  61. $this->add($v[$key]);
  62. if($this->thumb)
  63. {
  64. $v[$key]['prefix'] = $this->thumbPrefix
  65. }
  66. $v[$ key]['id'] = M('Attach')->getLastInsID();
  67. }
  68. return $v;
  69. }
  70. }
コードをコピーします
  1. DROP TABLE IF EXISTS `zj_attach`;
  2. CREATE TABLE `zj_attach` (
  3. `id` int(10) NOT NULL auto_increment,
  4. `name` varchar(100) NOT NULL COMMENT '添付ファイル名',
  5. `hashname ` varchar(100) デフォルト NULL,
  6. `status` tinyint(1) デフォルト '1' COMMENT '添付ステータス {1: 有効、0: 無効}',
  7. `savepath` varchar(100) デフォルト NULL COMMENT 'ストレージアドレス' ,
  8. `bsize` varchar(100) デフォルト NULL COMMENT '添付ファイルのサイズ',
  9. `model_name` varchar(50) デフォルト NULL COMMENT '所属するモジュール',
  10. `user_id` int(10) デフォルト NULL COMMENT 'アップロードユーザーid',
  11. `create_time` int(10) デフォルト NULL COMMENT 'アップロード時間',
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
コードをコピー


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート