0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CakePHP2 ファイルアップロード時にwebroot以下のディレクトリを指定する

Posted at

##やりたいこと
CakePHP2でファイルアップロードをしたい.
ただしアップロード時に任意のディレクトリにファイルをアップロードしたい.

Controller側(フォームからアップされたファイルを受け取り,保存)

今からアップロードする場合に,webroot以下のディレクトリをどう選べば良いのか?
以下のように,フォームから画像を受け取る場合:

script.php
if (move_uploaded_file($this->request->data['File']['file']['tmp_name'], 'test.jpg')) {
	$this->Flash->set('ファイルアップロードができました.');
} else {
	$this->Flash->set('ファイルアップロードが失敗しました.');
}

これが正しく実行されると,webrootの直下にtest.jpgがされます.
つまり任意のディレクトリにアップロードしたければ,以下のように,ファイルの名の前にディレクトリ名をつければよい.

script.php
if (move_uploaded_file($this->request->data['File']['file']['tmp_name'], 'foo/test.jpg')) {
	$this->Flash->set('ファイルアップロードができました.');
} else {
	$this->Flash->set('ファイルアップロードが失敗しました.');
}

View側(アップロードしたものを表示する)

いろいろしらべた結果,view側の処理はこれでよい.
もちろんこれは,すでにあるファイルを表示するだけの場合.

script.php
echo $this->Html->image('/foo/test.jpg', array('alt' => 'baz'));
// fooディレクトリのtest.jpgファイルを表示(画像ファイルとして)

参考

http://www.sigesaba.com/2013/06/override-img-dir-in-cakephp.php
公式:http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::script

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?