не могу загрузить файл с Codeigniter - PullRequest
0 голосов
/ 19 февраля 2011

У меня есть форма, которая отлично работает, но не передает файл в контроллер

<?php
    $this->load->helper('form');

    //open form
        $attributes = array('class' => 'contact_form');
        echo form_open_multipart('admin/add_record', $attributes);
        echo form_hidden('current_area', $current_area);

        echo form_fieldset('Dati da inserire', array('class' => 'form_fieldset'));
            echo "<p>";
            echo form_label('Titolo:', 'title', array('class' => 'form_label'));
                echo form_input('title', '', "class='form_textfield'");
            echo "</p>";
        echo form_fieldset_close();

        echo form_fieldset('Immagine', array('class' => 'form_fieldset'));
            echo '<p>';
                echo form_label('Immagine:', 'image', array('class' => 'form_label'));
                    echo form_upload('image', '', "class='form_filefield'");
            echo '</p>';
        echo form_fieldset_close(); 

        echo form_fieldset('Testo', array('class' => 'form_fieldset'));
            echo form_label('', 'description', array('class' => 'form_label'));
                echo form_textarea('description', '', array('class' => 'form_textarea', 'cols'  => 45, 'rows'  => 10));
        echo form_fieldset_close();

            //display submit button
            echo "<p>";
                echo form_submit(array('class' => 'form_submit', 'name' => 'submit'), "Inserisci!");
            echo "</p>";

        echo form_close();

?>

если я получаю переменные $ _POST на принимающей стороне, я вижу все их, ИСКЛЮЧАЯ файл (переменная с именем image выше).

Дело в том, если я изменюсь

echo form_upload('image', '', "class='form_filefield'");

до

echo form_input('image', '', "class='form_filefield'");

это работает, и переменная 'image' сбрасывается, как и любая другая.

Есть идеи?

спасибо, Патрик

EDIT:

это кажется какой-то ошибкой, так как я упростил форму и контроллер, и она все еще не работает:

ВИД:

<?php $this->load->helper('form', 'url'); ?>

<?php echo form_open_multipart('admin/add_record2');

echo form_upload('userfile', 'userfile');
?>



<br /><br />

<input type="submit" value="upload" />

</form>

CONTROLLER:

<code>function add_record2()
{
    //prints content of entire POST variable
echo '<pre>'; print_r($_POST);echo '
'; }

OUTPUT: пустой массив ...

Array
(
)

НОВОЕ РЕДАКТИРОВАНИЕ Мне удалось заставить его работать. Нужны были две вещи: а) установите права доступа к каталогу назначения на 777 б) введите каталог назначения в формате UNIX (я на локальной машине, поэтому /users/patrick/sites/....../uploads вместо localhost / site / img / uploads. Я все еще не уверен почему это, и я должен помнить, чтобы изменить это, когда я загружаю сайт на веб-хостинг ..

1 Ответ

1 голос
/ 19 февраля 2011

Я думаю, что вы должны использовать $_FILES (или $HTTP_POST_FILES, если вы используете версию PHP <4.1.0). </p>

Если это все еще не 't, проверьте настройку MAX_FILE_SIZE в php.ini и убедитесь, что она не слишком мала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...