cakephp 3.3을 사용하고 있습니다. 단일 이미지를 업로드 할 수는 있지만 웹 루트/업로드 아래에 저장되지 않습니다. 여러 이미지를 업로드하고 저장하고 싶습니다. 그것을 어떻게 성취 할 수 있습니까? 입력 사항을 입력하십시오. 나는 PHP 프로그래밍과이 프레임 워크에 매우 익숙하다. 고마워! 같은 입력 필드 뭔가을 add.ctp에서cakephp를 사용하여 여러 이미지를 업로드하고 서버에 저장하는 방법 3.3
`Images\add.ctp
<?= $this->Form->create($image,['type' => 'file']) ?>
<fieldset>
<legend><?= __('Add Image') ?></legend>
<?php
echo $this->Form->input('path',['type' => 'file']);
?>
</fieldset>`
ImagesController\add
public function add()
{
$image = $this->Images->newEntity();
if ($this->request->is('post')) {
$image = $this->Images->patchEntity($image, $this->request->data);
if ($this->Images->save($image)) {
$this->Flash->success(__('The image has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The image could not be saved. Please, try again.'));
}
}
$properties = $this->Images->Properties->find('list', ['limit' => 200]);
$this->set(compact('image', 'properties'));
$this->set('_serialize', ['image']);
}
Table\ImageTable.php
$validator
->requirePresence('path', 'create')
->notEmpty('path')
->add('processImageUpload', 'custom', [
'rule' => 'processImageUpload'
]);
public function processImageUpload($check = array()) {
if(!is_uploaded_file($check['path']['tmp_name'])){
return FALSE;
}
if (!move_uploaded_file($check['path']['tmp_name'], WWW_ROOT . 'img' . DS . 'images' . DS . $check['path']['name'])){
return FALSE;
}
$this->data[$this->alias]['path'] = 'images' . DS . $check['path']['name'];
return TRUE;
}
은 그렇게 무엇을하려고 않았다
그리고 컨트롤러의
이 같은 방법은 무엇인가 저장하기 멀리 ?? 진행 상황도 게시하십시오. –add.ctp에 입력 유형 파일을 만든 다음 move_uploded_file() 메서드를 사용하여 업로드를 처리했습니다. 위의 코드를 추가했습니다. 감사! – Mythri