前提・実現したいこと
現在cakephp2.xでWebアプリケーション作成の学習を行っています。
発生している問題・エラーメッセージ
cakephp2.xのチュートリアルを見ながら簡易ブログを作っていて、ユーザー情報ページに画像を表示する
プログラムを製作中です。
画像自体はWWW_ROOTを使って、webroot に登録できたのですがユーザー情報ページにて画像が表示できません。
画像のパスを確認してみたところ、
/user/cakePHP/cakePHP_Practice/cakephp/home/www/user/cakePHP/cakePHP_Practice/cakephp/app/webroot/upimg/8.jpg
のように画像のパスが重複している状態です。
該当のソースコード
UserController
1 public function edit($id = null) { 2 $date = date('ymd'); 3 $path = WWW_ROOT . 'upimg'; 4 5 $this->User->id = $id; 6 $this->set('user', $this->User->findById($id)); 7 if (!$this->User->exists()) { 8 throw new NotFoundException(__('Invalid user')); 9 } 10 if ($this->request->is('Post') || $this->request->is('put')) { 11 $img = $this->request->data('User.image.tmp_name'); 12 $name = $this->request->data('User.image.name'); 13 $ext = pathinfo($this->request->data['User']['image']['name'], PATHINFO_EXTENSION); 14 15 $uploadfile = $path . DS . $id . '.' . $ext; 16 17 if (!move_uploaded_file($img, $uploadfile)) { 18 $this->Flash->error(__('画像ファイルを保存できませんでした')); 19 return $this->redirect(array('controller' => 'posts', 'action' => 'index')); 20 } 21 //$this->request->data['User']['image'] = strstr($uploadfile, 'app'); 22 $this->request->data['User']['image'] = $uploadfile; 23 24 if ($this->User->save($this->request->data)) { 25 26 $this->Flash->success(__('ユーザー情報を更新しました')); 27 return $this->redirect(array('action' => 'view', $id)); 28 } 29 $this->Flash->error(__('The user could not be saved. Please try again.')); 30 } else { 31 $this->request->data = $this->User->findById($id); 32 unset($this->request->data['User']['password']); 33 } 34 }
User/view.ctp
1<h1>ユーザー名:<?php echo $user['User']['username']; ?></h1> 2<h1>メールアドレス:<?php echo h($user['User']['email']); ?></h1> 3<h4>ユーザー画像</h4> 4<?php 5if ($user['User']['image'] != NULL) {//DBにファイル名が保存されているかチェック 6 echo $this->Html->image($user['User']['image'], array('width'=>'200','height'=>'200')); 7 var_dump($user['User']['image']); 8} else { 9 echo '未登録'; 10} 11?> 12<p>【一言コメント】</p> 13<?php if (isset($user['User']['comment'])): ?> 14<p><?php echo h($user['User']['comment']); ?></p> 15<?php else: ?> 16<p>なし</p> 17<?php endif; ?> 18<?php 19if ($auth === $user['User']['id']) {//ログインユーザーと同じであれば編集が可能 20 echo $this->Html->link('ユーザー情報編集', array('controller' => 'users', 'action' => 'edit', $user['User']['id'])); 21} 22echo '<br>'; 23echo $this->Html->link('ホーム', array('controller' => 'posts', 'action' => 'index')); 24?> 25
補足情報(FW/ツールのバージョンなど)
cakePHP2
回答1件
あなたの回答
tips
プレビュー