ввод имени пользователя создаст каталог, если ввод имени пользователя john, он создаст john
изображение будет загружено в webroot\img\users\john\uploaded1.jpg
В таблице пользователей было поле назначения.
Он вставит в базу данных правильный путь назначения D:\xampp\htdocs\sample\webroot\img\users\john\uploaded1.jpg
но uploaded1.jpg не добавляется, и предупреждение ниже не может перемещать файл
Предупреждение (2): move_uploaded_file(D:\xampp\htdocs\sample\webroot\img\users\james\uploaded1.jpg): не удалось открыть поток: нет такого файла или каталога [APP/Controller\UsersController.php, строка 584 ] Предупреждение (2): move_uploaded_file() [https://secure.php.net/function.move-uploaded-file'>function.move-uploaded-file]: невозможно переместить 'D:\xampp-for-cakephp3 \tmp\php3FD6.tmp» на «D:\xampp\htdocs\sample\webroot\img\james\uploaded1.jpg» [APP/Controller\UsersController.php, строка 584]
<?php
public function register()
{
$user = $this->Users->newEntity();
$value = $this->request->getData('username'); // holds the username input
if($this->request->is('post')) {
$image_name = $this->request->data['profile_pic']['name'];
$image_tmp = $this->request->data['profile_pic']['tmp_name'];
$destination = WWW_ROOT.'img'.DS.'users'.DS.$value.DS.$image_name;
//debug($destination);exit;
move_uploaded_file($image_tmp, $destination);
$this->request->data['profile_pic'] = $image_name;
$this->request->data['destination'] = $destination;
$user= $this->Users->patchEntity($user,$this->request->getData());
if($this->Users->save($user)) {
$dir = new Folder();
$path_data = $dir->create(WWW_ROOT.'img'.DS.'users'.DS.$value,true,0777);
$this->Flash->success(__('User profile successfuly updated.'));
return $this->redirect(['action' => 'login']);
} else {
$this->Flash->error(__('The user could not be saved. Please, try again.'));
}
}
$this->set(compact('user'));
$this->set('_serialize', ['user']);
}
?>
img\james
Я не использую Cake, но это может быть очень легко проблема с правами доступа к файлу, или, по крайней мере, это моя мысль. Это в значительной степени говорит о том, что прямо здесьfailed to open stream: No such file or directory
ака убедитесь, что вы не использовали root для его создания, я действительно сделал что-то подобное сегодня на сайте WordPress ... лол - person ArtisticPhoenix   schedule 17.02.2018