2

db に画像を保存して表示する方法がわかりません。

私がしたいのは、画像パスをdbに保存し、画像を/ img /フォルダーに保存してから、ユーザーに表示することです。

私の登録フォームでは、ユーザーにこのような画像をアップロードするように求めています

<?php echo $this->Form->input('image', array('class'=>'forminput', 'label' => 'Upload Image:', 'type' => 'file'));  ?>

データベースの画像フィールドのタイプは longblob です。

このようにユーザーに表示すると...

<?php echo $this->html->image('Auth.User.image');?>
4

2 に答える 2

2

イメージをサーバーに保存し、DBにイメージの名前のみを保存します。

通常、画像はwebrootのimgフォルダに保存されます。画像を表示すると、次のようになります。

<?php echo $this->Html->image('img' . DS . CakeSession::read('Auth.User.image')); ?>
  • ここで、imageは、Usersテーブルの画像フィールドに保存されたアップロードする画像の名前です。

コントローラ内では、PHPで通常行うようにファイルをアップロードする必要があります。

$file_name = $_POST['User']['name'];
$tmp_file = $_POST['User']['tmp_name'];
if(is_uploaded_file($tmp_file)){ 
    if(move_uploaded_file($tmp_file){
        ... 
        $this->data['User']['image'] = $file_name; 
        $this->User->save($this->data);
    }
}
于 2012-09-14T12:57:10.237 に答える