2012-01-07 15 views
0

私はユーザーレコードに関連するアバターをアップロードしようとしていますが、どうすればいいのか分かりません。FileFolderUtilityを使用する必要がありますが、それを使用する必要があります。基本CakePHP 2.0画像アップロード

私はアバターが私は右usersテーブル内avatar列を使用すると考えられ、すべてのユーザーに固有のものですので、それは右である、私は私のユーザーのアバターのパスを挿入する必要があり、私のusers dbテーブルにavatarフィールドを持っています私はイメージに特有の何かをするべきですか?

私はこれを書いてきましたが、それは動作しません

// in my user edit view where I upload the image (avatar) 
$file = new File ($this->request->data['User']['avatar']); // error here 
$ext = $file->ext(); 
$filename = $this->User->id.$ext; 
$image = $file->read(); 
$file->close(); 
$file = new File (WWW_ROOT.'img/avatar/'.$filename, true, 777); 
$file->write($image); 
$file->close(); 
$this->request->data['User']['avatar'] = $filename; 

このコードは、私が$this->request->data['User']['avatar']配列を渡すことによって、Fileを作成し、私が報告してきた最初の行、でエラーを返します:

Warning (2): dirname() expects parameter 1 to be string, array given 
Warning (2): is_dir() expects parameter 1 to be string, array given 
Warning (2): basename() expects parameter 1 to be string, array given 

CakePHP 2.0のいくつかの実例がありますか?

答えて

1

私はアップロードのtmp_nameを追加していなかったので、同様の問題がありました。最後に、私は通常のPHPコードを選択しました:

move_uploaded_file ($this->request->data['Model']['picture']['tmp_name'], WWW_ROOT.'/img/pictures/'.$new_file_name.'.jpg'); 
$this->request->data['Model']['picture_path'] = '/img/pictures/'.$new_file_name.'.jpg'; 
$this->Model->save($this->request->data['Model']); 

あなたはプラグインを使用してケーキファイルの機能を使用せずに上記の質問を解決しましたか?面白くて見て便利だろうか。

+0

あなたは、実施例を使用し共有することができ感謝します。?: ) –

+1

上記のコードはCakePHPフレームワークのためのものです。通常のPHPへの言及は、move_uploaded_fileコマンドに関連しています。上記では、ファイルの一時的な場所を取得し、それを永続的な場所に移動します。 move_uploaded_file(一時ファイル、永続的なファイルの場所)。その後、永続的なファイルの場所を関連するデータベースフィールドに保存し、後で取得します。 – alieninlondon

2

私はCakePHP 2のメディア/画像アップロードプラグインの多くを試しました。私はCakeMedia(http://grafikart.github.com/CakePHP-Media)が最高のものを見つけました。これは、認証コンポーネントが動作する必要があることを除いてうまく動作します。 。

それが既に含まヘルパーを経由してあなたのための設定(あまりにTinyMCEをとうまく動作

あなたはそれはあなたを助けるかもしれないコードに見てみる必要があります

関連する問題