Nefunkční DATA_FILE u formuláře generovaného v šabloně

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
sinacek
Člen | 23
+
0
-

Ahoj,
u formulářového políčka pro soubor se mi vrací odpověd přes $form->getHttpData($form::DATA_FILE, …) jen jako textová informace o názvu souboru namísto uplodovaného souboru. Používal jste někdo už toto nové generování pro nahrávání souborů?

PHP 5.4.4
Nette 2.2.2

Díky za reakce

Šablona

<?php
{form addForm}
    <ul class="errors" n:if="$form->hasErrors()">
        <li n:foreach="$form->errors as $error">{$error}</li>
    </ul>
    <table>
        <tr>
            <th>Přiložené soubory</th>
            <td>
                <div id="filesContainer"><input type="file" name="myfile[]" /></div>
            </td>
        </tr>
        <tr>
            <th></th>
            <td>{input send}</td>
        </tr>
    </table>
{/form}
?>

Zpracování:

<?php
public function addFormSubmitted(Form $form) {
        dump($form->getHttpData());
        dump($form->getHttpData($form::DATA_TEXT, 'myfile[]'));
        dump($form->getHttpData($form::DATA_FILE, 'myfile[]'));
        die();
    }

?>

Odpověd:

<?php
//getHttpData
array (3)
myfile => array (1)
	0 => "carousel-image-01.jpg" (21)
send => "Odeslat" (7)
do => "addForm-submit" (19)

//DATA_TEXT
array (1)
0 => "carousel-image-01.jpg" (21)

//DATA_FILE
array ()
?>

PS: zjistil jsem, že když přidám do tvorby formuláře v presenteru ještě $form->addUpload(„f“, „f“, TRUE); tak to už funguje a to ani to nové pole nemusím nikde vykreslovat a nemá ani stejný name.

Editoval sinacek (19. 8. 2014 15:07)

David Matějka
Moderator | 6445
+
+1
-

Form totiz nema nastaveny spravny enctype, ktery pridava UploadControl. Ty ho tedy budes muset nastavit rucne

zool
Člen | 144
+
0
-

Zdravím mám podobný problém. Když si vygeneruuju několik inputu typu file, a u nějakého nevyberu soubor, tak ti to nic nevrátí, v opačném případě vše šlape.

David Grudl
Nette Core | 8228
+
0
-

Tohle bude opravené v další verzi.

zool
Člen | 144
+
0
-

Super děkuji za info, zatím jsem to vyřešil jinak.