Ошибка загрузки файла cakephp - PullRequest
0 голосов
/ 12 января 2010

Когда я выбираю изображение и нажимаю кнопку загрузки, я получаю эту ошибку в моем контроллере: Примечание (8): неопределенный индекс: файл [APP / controllers / garage_car_images_controller.php, строка 22]

Я также заметил, что показанная ниже строка $ form-> create НЕ генерирует код формы в проверенном html. Это очень странно.

Есть идеи как это исправить? Спасибо!

Код моего просмотра:

<div class="title_plate">
    <h1 id="title_plate_header">add image</h1>
</div>
<div id="overlay_content">
<?php
    echo $form->create('GarageCarImage', array('controller' => 'garage_car_images','action' => 'add', 'type' => 'file'));
    echo $form->file('File');
    echo $form->hidden('garage_car_id', array('value' => $this->params['pass'][0]));
    echo "<br><br>";
    echo "Make this image the default? " . $form->input('default', array('type' => 'select', 'label' => false, 'options' => array('0' => 'No', '1' => 'Yes')));
    echo "<br>";
    echo $form->submit('Upload');
    echo $form->end();
?>
</div>

Код моего контроллера:

if (!empty($this->data) &&
             is_uploaded_file($this->data['GarageCarImage']['File']['tmp_name'])) {
            $fileData = fread(fopen($this->data['GarageCarImage']['File']['tmp_name'], "r"),
                                     $this->data['GarageCarImage']['File']['size']);

            $this->data['GarageCarImage']['type'] = $this->data['GarageCarImage']['File']['type'];
            $this->data['GarageCarImage']['user_id'] = $this->Auth->user('id');
            $this->GarageCarImage->save($this->data);
}

1 Ответ

1 голос
/ 12 января 2010

Вы уверены, что он не генерирует код формы?Если этого не произойдет, я не думаю, что вы даже сможете попытаться отправить форму.Я полагаю, что отправка формы происходит потому, что вы, кажется, выполнили запрос для / garageCarImages / index - для меня это говорит о том, что форма генерируется правильно.

Если это действительно так, вам следует просто изменитьзначение первого параметра в имени контроллера, в котором вы хотите, чтобы код выполнялся. Обычно для этого я использую контроллер Attachment, поэтому я бы поставил:

echo $form->create( 'Attachment', array(...) );

ВашСитуация будет зависеть от того, где находится код для обработки загрузки.Скорее всего, это ImageController (думаю, здесь ...), но я не уверен, не зная больше деталей о вашей системе.

...