CakePHP $ _FILES пусто

Я пытаюсь изменить платформу рассылки, написанную на CakePHP, чтобы делать вложения. При создании новостной рассылки можно загрузить файл изображения, который будет добавлен в качестве вложения. Однако после отправки формы (создание бюллетеня является формой) переменная $ _FILES пуста. Однако имя файла включено в данные POST.

Вот некоторые из форм HTML

<form action='/systeem/nieuwsbrieven/' method='POST'>

<tr>

<td style='padding: 10px;'><textarea name='data[Nieuwsbrieven][omschrijving]' style='width: 100%;height: 150px;'></textarea></td>

</tr>

<tr>

<td style='padding: 10px;'><input type="file" id='fileupload' name="data[Nieuwsbrieven][attachment]"  style='width: 100%;height: 150px;'></td>

</tr>

Я добавил ‘data [Nieuwsbrieven] [omschrijving]’, потому что этот бит работает. Вот функция, которая обрабатывает форму:

function nieuwsbrieven() {
if (isset($this->data)) {
echo 'DATA:';
var_dump($this->data);
echo 'FILES:';
var_dump($_FILES);
//echo $_FILES['data[Nieuwsbrieven][attachment]']['name']."<< THE NAME";
exit();
}
else {

echo "data bestaat niet";
}

if(!empty($this->data)) {

$this->data['Nieuwsbrieven']['datum'] = mktime();

$datum = explode('-', $this->data['Nieuwsbrieven']['convert_datum']);

$this->data['Nieuwsbrieven']['plan_datum'] = mktime(0, 0, 0, $datum[1], $datum[0], $datum[2]);

$this->Nieuwsbrieven->save($this->data);
//$this->redirect("/systeem/verzenden/");

}

}

Как вы можете видеть, я var_dump $ this-> data и $ _FILES, вот результат этого:

DATA: array(1) { ["Nieuwsbrieven"]=> array(5) { ["content"]=> string(21) "test content

" ["titel"]=> string(12) "test subject" ["convert_datum"]=> string(10) "25-09-2014"     ["omschrijving"]=> string(4) "test" ["attachment"]=> string(16) "137785222989.jpg" } } FILES: array(0) { }

Это не проблема с настройками INI, потому что я попробовал тестовый скрипт с ванильным PHP и смог загрузить файлы очень хорошо.

1

Решение

Попробуйте объявить форму со следующей формой:

HTML

<form action='/systeem/nieuwsbrieven/' method='POST' enctype="multipart/form-data">

CakePHP

echo $this->Form->create('User', array('type' => 'file'));
1

Другие решения

гораздо лучшим вариантом будет использование помощника по форме CakePHP, вы должны передать параметр типа с файлом вместо обычного поста

  echo $this->Form->create('User', array('type' => 'file'));

пожалуйста, проверьте http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-create

2

ты скучаешь по энтипу ..

если ваша форма содержит какие-либо элементы, добавьте multipart / form-data с вашим тегом формы.
лайк :
<form action='/systeem/nieuwsbrieven/' method='POST' enctype="multipart/form-data">

0
По вопросам рекламы [email protected]