PHPを使用してコントローラーから画像をアップロードしようとしています。ここでは、画像のアップロードは正常に機能していますが、コンテンツはデータベースに保存されておらず、画像パスのみが保存されています。画像のアップロード コードにコメントすると、コンテンツがデータベースに追加されます。
これが私が試した私のコードです
<?= $this->Form->create($news,array('type'=>'file')) ?>
<div class="col-md-12">
<?php
echo $this->Form->input('newsImage',['type'=>'file']);
echo $this->Form->input('title',['class'=>'form-control']);
echo $this->Form->input('news');
?>
</div>
<?= $this->Form->end() ?>
そしてコントローラーで、画像をアップロードするために以下のコードを試しました
if ($this->request->is('post')) {
$target_dir = "img/news/";
$target_file = $target_dir . basename($_FILES["newsImage"]["name"]);
$fNAME = $_FILES["newsImage"]["name"];
$TMPNAME = $_FILES['newsImage']['tmp_name'];
move_uploaded_file($_FILES["newsImage"]["tmp_name"], $target_file);
$this->request->data['News']['newsImage']=$fNAME;
$news = $this->News->patchEntity($news, $this->request->data);
if ($this->News->save($news)) {
$this->Flash->success(__('The news has been saved.'));
//return $this->redirect($this->referer());
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The news could not be saved. Please, try again.'));
}
}
ここでは、データベースに保存される画像ディレクトリのみで、タイトルとニュースは保存されません。