質問: $this->Session->read('Session.xxx'); //mkdir($image,0777); $this->set('image',$image); } $this->set('title',$title); $this->set('body',$body); ```
回答: 該当箇所のソースがまったく提示されていないために憶測でしか書けませんが、手順3において `tempnam()` で一時ファイルを `app/webroot/img` 配下に作成しようとしているときに、まだ存在しないディレクトリを指定していませんか。あるいは相対pathを指定していませんか。 tempnam() は指定したディレクトリが存在しない場合や、あるいはディレクトリが存在しても書き込み権限がない場合は、代わりにシステムのテンポラリディレクトリにファイルを作成しに行きます。 PHP: tempnam - Manual > > **説明** > > 一意なテンポラリファイル名を、パーミッションを 0600 に設定し、 指定したディレクトリに作成します。 指定したディレクトリが存在しない場合やディレクトリに書き込めない場合は、tempnam() はシステムのテンポラリディレクトリにあるファイル名を生成し、 そのファイルへのフルパスを (名前を含めて) 返します。 > > > `img` よりさらに深い階層に一時ファイルを置きたいのであれば、あらかじめその階層のディレクトリを作っておく必要があります。Cakeの場合は Folder::create() を使うと便利でしょう。