【CakePHP2】이미지를 저장하는 UploadPack【MQ02】
개요
이번은 화상을 보존해 표시입니다.
(참고 사이트: CakePHP 이미지 리사이즈 최강 플러그인 UploadPack을 Cake 초보자라도 알 수 있도록 철저 해설 )
상의 사이트대로입니다만, 왠지 처음에 했을 때 잘 모르기 때문에, 코드 그대로 싣습니다.
환경은 CakePHP2.9.4입니다.
DB
이번에는 「images」테이블을 만들었습니다.
중요한 것은 "img01_file_name"과 같이 "_file_name"이라는 이름의 열을 준비하는 것입니다.
Plugin(플러그인)
1.GitHub에서 다운로드하여 app/Plugin에 넣기
2. upload_pack
라는 이름으로 바꾸기
3.Plugin을 로드하도록 설정
(마지막 줄에 추가?)
app/Config/bootstrap.php<?php
CakePlugin::loadAll();
}
폴더 액세스 권한 설정
이미지를 저장할 폴더(upload) 아래의 모든 파일의 권한을 바꾼다.
app/webrootmkdir upload
chmod 777 -R /upload
(추기)
「실행 권한 필요 없겠지」라고 776으로 쓰고 있었습니다만, 777이 아니면 안 되었습니다.
모델
Model/Image.php
<?php
App::uses('AppModel', 'Model');
class Image extends AppModel{
var $name = 'Image';
var $actsAs = array(
'UploadPack.Upload' => array(
// 画像保存用フィールド名(_file_nameは書かない)
'img' => array(
'quality' => 95,
'path' => ':webroot/upload/:model/:style:id.:extension',
// styleを指定しないと、サムネイルが保存されない
'styles' => array(
'big' => '100w', // オリジナルサイズ
'small' => '80h', //
'thumb' => '50x50',
// 勝手にoriginalとして保存してくれてた
),
),
),
'Search.Searchable',
);
public $filterArgs = array(
'id' => array('type' => 'value'),
'title' => array('type' => 'like'),
'img_file_name' => array('type' => 'like'),
'mailaddress' => array('type' => 'like'),
'created' => array('type' => 'value'),
/*
[type]
value, int -> 等号、不等号などを使う場合
like, string -> あいまい検索をする場合
expression -> BETWEEN等
subquery -> INを使いたい時
query -> 一番自由度の高いタイプ
*/
);
}
컨트롤러
Controller/ImagesController.php<?php
class ImagesController extends AppController {
var $uses = array('Image'); // Imageモデルを使うよー
public $components = array(
'Paginator',
);
// ヘルパーの読み込みを忘れずに行う
var $helpers = array('Form', 'UploadPack.Upload');
public function index() {
$this->set('images', $this->Image->find('all'));
}
public function add() {
if (!empty($this->data)) {
if ($this->Image->save($this->data)) {
// /index じゃダメ、地味に微調整
$this->redirect('index');
}
}
}
}
?>
보기
View/Images/index.ctp
<h1>UploadPack</h1>
<p>This is UploadPack Test!</p>
<h2><?php echo $this->Html->link("Add New Image", "/images/add/"); ?></h2>
<table>
<tr>
<th>TITLE</th>
<th>IMAGE</th>
<th>FILENAME</th>
<th>MailAddress</th>
<th>CREATED</th>
</tr>
<div id="contents">
<?php foreach($images as $image): ?>
<tr>
<td><?php echo $image['Image']['title'];?></td>
<td><?php echo $this->Upload->uploadImage($image['Image'], 'Image.img', array(
// 'style' => 'original'
'style' => 'thumb'
)); ?></td>
<td><?php echo $image['Image']['img_file_name'];?></td>
<td><?php echo $image['Image']['mailaddress'];?></td>
<td><?php echo $image['Image']['created'];?></td>
</tr>
<?php endforeach;?>
<div class="navigation">
<?php echo $this->Paginator->next('次のページ'); ?>
</div>
</div>
</table>
View/Images/add.ctp
<h1>画像新規登録</h1>
<?php echo $this->Form->create('Image', array('type' => 'file')); ?>
<table>
<tr>
<th>TITLE</th>
<td><?php echo $this->Form->text('Image.title'); ?></td>
</tr>
<tr>
<th>Mail</th>
<td><?php echo $this->Form->text('Image.mailaddress'); ?></td>
</tr>
<tr>
<th>IMAGE</th>
<td>
<?php echo $this->Form->file('Image.img');?>
<?php echo $this->Form->error('Image.img');?>
</td>
</tr>
<tr>
<th></th>
<td>
<?php echo $this->Form->end('新規登録');?></td>
</tr>
</table>
이상
Reference
이 문제에 관하여(【CakePHP2】이미지를 저장하는 UploadPack【MQ02】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MATO/items/3a58aec1e0018d879c88
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 「images」테이블을 만들었습니다.
중요한 것은 "img01_file_name"과 같이 "_file_name"이라는 이름의 열을 준비하는 것입니다.
Plugin(플러그인)
1.GitHub에서 다운로드하여 app/Plugin에 넣기
2. upload_pack
라는 이름으로 바꾸기
3.Plugin을 로드하도록 설정
(마지막 줄에 추가?)
app/Config/bootstrap.php<?php
CakePlugin::loadAll();
}
폴더 액세스 권한 설정
이미지를 저장할 폴더(upload) 아래의 모든 파일의 권한을 바꾼다.
app/webrootmkdir upload
chmod 777 -R /upload
(추기)
「실행 권한 필요 없겠지」라고 776으로 쓰고 있었습니다만, 777이 아니면 안 되었습니다.
모델
Model/Image.php
<?php
App::uses('AppModel', 'Model');
class Image extends AppModel{
var $name = 'Image';
var $actsAs = array(
'UploadPack.Upload' => array(
// 画像保存用フィールド名(_file_nameは書かない)
'img' => array(
'quality' => 95,
'path' => ':webroot/upload/:model/:style:id.:extension',
// styleを指定しないと、サムネイルが保存されない
'styles' => array(
'big' => '100w', // オリジナルサイズ
'small' => '80h', //
'thumb' => '50x50',
// 勝手にoriginalとして保存してくれてた
),
),
),
'Search.Searchable',
);
public $filterArgs = array(
'id' => array('type' => 'value'),
'title' => array('type' => 'like'),
'img_file_name' => array('type' => 'like'),
'mailaddress' => array('type' => 'like'),
'created' => array('type' => 'value'),
/*
[type]
value, int -> 等号、不等号などを使う場合
like, string -> あいまい検索をする場合
expression -> BETWEEN等
subquery -> INを使いたい時
query -> 一番自由度の高いタイプ
*/
);
}
컨트롤러
Controller/ImagesController.php<?php
class ImagesController extends AppController {
var $uses = array('Image'); // Imageモデルを使うよー
public $components = array(
'Paginator',
);
// ヘルパーの読み込みを忘れずに行う
var $helpers = array('Form', 'UploadPack.Upload');
public function index() {
$this->set('images', $this->Image->find('all'));
}
public function add() {
if (!empty($this->data)) {
if ($this->Image->save($this->data)) {
// /index じゃダメ、地味に微調整
$this->redirect('index');
}
}
}
}
?>
보기
View/Images/index.ctp
<h1>UploadPack</h1>
<p>This is UploadPack Test!</p>
<h2><?php echo $this->Html->link("Add New Image", "/images/add/"); ?></h2>
<table>
<tr>
<th>TITLE</th>
<th>IMAGE</th>
<th>FILENAME</th>
<th>MailAddress</th>
<th>CREATED</th>
</tr>
<div id="contents">
<?php foreach($images as $image): ?>
<tr>
<td><?php echo $image['Image']['title'];?></td>
<td><?php echo $this->Upload->uploadImage($image['Image'], 'Image.img', array(
// 'style' => 'original'
'style' => 'thumb'
)); ?></td>
<td><?php echo $image['Image']['img_file_name'];?></td>
<td><?php echo $image['Image']['mailaddress'];?></td>
<td><?php echo $image['Image']['created'];?></td>
</tr>
<?php endforeach;?>
<div class="navigation">
<?php echo $this->Paginator->next('次のページ'); ?>
</div>
</div>
</table>
View/Images/add.ctp
<h1>画像新規登録</h1>
<?php echo $this->Form->create('Image', array('type' => 'file')); ?>
<table>
<tr>
<th>TITLE</th>
<td><?php echo $this->Form->text('Image.title'); ?></td>
</tr>
<tr>
<th>Mail</th>
<td><?php echo $this->Form->text('Image.mailaddress'); ?></td>
</tr>
<tr>
<th>IMAGE</th>
<td>
<?php echo $this->Form->file('Image.img');?>
<?php echo $this->Form->error('Image.img');?>
</td>
</tr>
<tr>
<th></th>
<td>
<?php echo $this->Form->end('新規登録');?></td>
</tr>
</table>
이상
Reference
이 문제에 관하여(【CakePHP2】이미지를 저장하는 UploadPack【MQ02】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MATO/items/3a58aec1e0018d879c88
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
CakePlugin::loadAll();
}
이미지를 저장할 폴더(upload) 아래의 모든 파일의 권한을 바꾼다.
app/webroot
mkdir upload
chmod 777 -R /upload
(추기)
「실행 권한 필요 없겠지」라고 776으로 쓰고 있었습니다만, 777이 아니면 안 되었습니다.
모델
Model/Image.php
<?php
App::uses('AppModel', 'Model');
class Image extends AppModel{
var $name = 'Image';
var $actsAs = array(
'UploadPack.Upload' => array(
// 画像保存用フィールド名(_file_nameは書かない)
'img' => array(
'quality' => 95,
'path' => ':webroot/upload/:model/:style:id.:extension',
// styleを指定しないと、サムネイルが保存されない
'styles' => array(
'big' => '100w', // オリジナルサイズ
'small' => '80h', //
'thumb' => '50x50',
// 勝手にoriginalとして保存してくれてた
),
),
),
'Search.Searchable',
);
public $filterArgs = array(
'id' => array('type' => 'value'),
'title' => array('type' => 'like'),
'img_file_name' => array('type' => 'like'),
'mailaddress' => array('type' => 'like'),
'created' => array('type' => 'value'),
/*
[type]
value, int -> 等号、不等号などを使う場合
like, string -> あいまい検索をする場合
expression -> BETWEEN等
subquery -> INを使いたい時
query -> 一番自由度の高いタイプ
*/
);
}
컨트롤러
Controller/ImagesController.php<?php
class ImagesController extends AppController {
var $uses = array('Image'); // Imageモデルを使うよー
public $components = array(
'Paginator',
);
// ヘルパーの読み込みを忘れずに行う
var $helpers = array('Form', 'UploadPack.Upload');
public function index() {
$this->set('images', $this->Image->find('all'));
}
public function add() {
if (!empty($this->data)) {
if ($this->Image->save($this->data)) {
// /index じゃダメ、地味に微調整
$this->redirect('index');
}
}
}
}
?>
보기
View/Images/index.ctp
<h1>UploadPack</h1>
<p>This is UploadPack Test!</p>
<h2><?php echo $this->Html->link("Add New Image", "/images/add/"); ?></h2>
<table>
<tr>
<th>TITLE</th>
<th>IMAGE</th>
<th>FILENAME</th>
<th>MailAddress</th>
<th>CREATED</th>
</tr>
<div id="contents">
<?php foreach($images as $image): ?>
<tr>
<td><?php echo $image['Image']['title'];?></td>
<td><?php echo $this->Upload->uploadImage($image['Image'], 'Image.img', array(
// 'style' => 'original'
'style' => 'thumb'
)); ?></td>
<td><?php echo $image['Image']['img_file_name'];?></td>
<td><?php echo $image['Image']['mailaddress'];?></td>
<td><?php echo $image['Image']['created'];?></td>
</tr>
<?php endforeach;?>
<div class="navigation">
<?php echo $this->Paginator->next('次のページ'); ?>
</div>
</div>
</table>
View/Images/add.ctp
<h1>画像新規登録</h1>
<?php echo $this->Form->create('Image', array('type' => 'file')); ?>
<table>
<tr>
<th>TITLE</th>
<td><?php echo $this->Form->text('Image.title'); ?></td>
</tr>
<tr>
<th>Mail</th>
<td><?php echo $this->Form->text('Image.mailaddress'); ?></td>
</tr>
<tr>
<th>IMAGE</th>
<td>
<?php echo $this->Form->file('Image.img');?>
<?php echo $this->Form->error('Image.img');?>
</td>
</tr>
<tr>
<th></th>
<td>
<?php echo $this->Form->end('新規登録');?></td>
</tr>
</table>
이상
Reference
이 문제에 관하여(【CakePHP2】이미지를 저장하는 UploadPack【MQ02】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MATO/items/3a58aec1e0018d879c88
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
App::uses('AppModel', 'Model');
class Image extends AppModel{
var $name = 'Image';
var $actsAs = array(
'UploadPack.Upload' => array(
// 画像保存用フィールド名(_file_nameは書かない)
'img' => array(
'quality' => 95,
'path' => ':webroot/upload/:model/:style:id.:extension',
// styleを指定しないと、サムネイルが保存されない
'styles' => array(
'big' => '100w', // オリジナルサイズ
'small' => '80h', //
'thumb' => '50x50',
// 勝手にoriginalとして保存してくれてた
),
),
),
'Search.Searchable',
);
public $filterArgs = array(
'id' => array('type' => 'value'),
'title' => array('type' => 'like'),
'img_file_name' => array('type' => 'like'),
'mailaddress' => array('type' => 'like'),
'created' => array('type' => 'value'),
/*
[type]
value, int -> 等号、不等号などを使う場合
like, string -> あいまい検索をする場合
expression -> BETWEEN等
subquery -> INを使いたい時
query -> 一番自由度の高いタイプ
*/
);
}
Controller/ImagesController.php
<?php
class ImagesController extends AppController {
var $uses = array('Image'); // Imageモデルを使うよー
public $components = array(
'Paginator',
);
// ヘルパーの読み込みを忘れずに行う
var $helpers = array('Form', 'UploadPack.Upload');
public function index() {
$this->set('images', $this->Image->find('all'));
}
public function add() {
if (!empty($this->data)) {
if ($this->Image->save($this->data)) {
// /index じゃダメ、地味に微調整
$this->redirect('index');
}
}
}
}
?>
보기
View/Images/index.ctp
<h1>UploadPack</h1>
<p>This is UploadPack Test!</p>
<h2><?php echo $this->Html->link("Add New Image", "/images/add/"); ?></h2>
<table>
<tr>
<th>TITLE</th>
<th>IMAGE</th>
<th>FILENAME</th>
<th>MailAddress</th>
<th>CREATED</th>
</tr>
<div id="contents">
<?php foreach($images as $image): ?>
<tr>
<td><?php echo $image['Image']['title'];?></td>
<td><?php echo $this->Upload->uploadImage($image['Image'], 'Image.img', array(
// 'style' => 'original'
'style' => 'thumb'
)); ?></td>
<td><?php echo $image['Image']['img_file_name'];?></td>
<td><?php echo $image['Image']['mailaddress'];?></td>
<td><?php echo $image['Image']['created'];?></td>
</tr>
<?php endforeach;?>
<div class="navigation">
<?php echo $this->Paginator->next('次のページ'); ?>
</div>
</div>
</table>
View/Images/add.ctp
<h1>画像新規登録</h1>
<?php echo $this->Form->create('Image', array('type' => 'file')); ?>
<table>
<tr>
<th>TITLE</th>
<td><?php echo $this->Form->text('Image.title'); ?></td>
</tr>
<tr>
<th>Mail</th>
<td><?php echo $this->Form->text('Image.mailaddress'); ?></td>
</tr>
<tr>
<th>IMAGE</th>
<td>
<?php echo $this->Form->file('Image.img');?>
<?php echo $this->Form->error('Image.img');?>
</td>
</tr>
<tr>
<th></th>
<td>
<?php echo $this->Form->end('新規登録');?></td>
</tr>
</table>
이상
Reference
이 문제에 관하여(【CakePHP2】이미지를 저장하는 UploadPack【MQ02】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MATO/items/3a58aec1e0018d879c88
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<h1>UploadPack</h1>
<p>This is UploadPack Test!</p>
<h2><?php echo $this->Html->link("Add New Image", "/images/add/"); ?></h2>
<table>
<tr>
<th>TITLE</th>
<th>IMAGE</th>
<th>FILENAME</th>
<th>MailAddress</th>
<th>CREATED</th>
</tr>
<div id="contents">
<?php foreach($images as $image): ?>
<tr>
<td><?php echo $image['Image']['title'];?></td>
<td><?php echo $this->Upload->uploadImage($image['Image'], 'Image.img', array(
// 'style' => 'original'
'style' => 'thumb'
)); ?></td>
<td><?php echo $image['Image']['img_file_name'];?></td>
<td><?php echo $image['Image']['mailaddress'];?></td>
<td><?php echo $image['Image']['created'];?></td>
</tr>
<?php endforeach;?>
<div class="navigation">
<?php echo $this->Paginator->next('次のページ'); ?>
</div>
</div>
</table>
<h1>画像新規登録</h1>
<?php echo $this->Form->create('Image', array('type' => 'file')); ?>
<table>
<tr>
<th>TITLE</th>
<td><?php echo $this->Form->text('Image.title'); ?></td>
</tr>
<tr>
<th>Mail</th>
<td><?php echo $this->Form->text('Image.mailaddress'); ?></td>
</tr>
<tr>
<th>IMAGE</th>
<td>
<?php echo $this->Form->file('Image.img');?>
<?php echo $this->Form->error('Image.img');?>
</td>
</tr>
<tr>
<th></th>
<td>
<?php echo $this->Form->end('新規登録');?></td>
</tr>
</table>
Reference
이 문제에 관하여(【CakePHP2】이미지를 저장하는 UploadPack【MQ02】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MATO/items/3a58aec1e0018d879c88텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)