upload obrázku, prázdné hodnoty

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

Zdravím,

ve formuláři mám $form->addFile(‚file‘);

po odeslání si vypíšu data

$values = $form->getValues();
Debug::dump($form->values);

a jako výsledek dostanu:

<?php


<pre class="nette-dump"><span>array</span>(14) <code>{
   "file" => <span>Nette\Web\HttpUploadedFile</span>(5) <code>{
      "name" <span>private</span> => NULL
      "type" <span>private</span> => NULL
      "size" <span>private</span> => NULL
      "tmpName" <span>private</span> => NULL
      "error" <span>private</span> => 4
   }</code>
   .
   .
   .
?>

přičemž soubor do file inputu vložím.

Nevíte, kde může být problém?

Editoval wise (13. 3. 2011 21:35)

jtousek
Člen | 951
+
0
-

Error kód 4 znamená, že nebyl nahrán žádný soubor. Viz http://php.net/…d.errors.php.

Zkus si vypsat $_FILES.

wise
Člen | 161
+
0
-

Tak taky nic,
toto mi vygeneruje nette (+ mé úpravy kvůli přehlednosti)

<?php
<form action="nějaká url" method="post" id="frm-mPresenter" enctype="multipart/form-data">
<input type="file" class="fileInput text" name="file" id="frmmpresenter-file" />
...
?>

nějak nechce reagovat na obrázek

Edit: ale ostatní hodnoty jsou v pořádku, jen file ne.
Edit2: … já ten formulář posílám ajaxově… :-)

Editoval wise (14. 3. 2011 2:05)

Patrik Votoček
Člen | 2221
+
0
-

wise napsal(a):

Edit2: … já ten formulář posílám ajaxově… :-)

to bude ten problém! XHR neumí soubory to umí až XHR2 a ještě trochu oklikou…

jtousek
Člen | 951
+
0
-

V tom případě se divím, že Nette vůbec dovolí odesílat formuláře se soubory ajaxem.

EDIT: Anebo Nette ajax u formulářů neřeší vůbec?

Každopádně řešením je odesílat ten formulář přes iframe a z něj pak přečíst odpověď. Není to nic jednoduchýho, ale dá se to.

Editoval jtousek (14. 3. 2011 8:51)

bojovyletoun
Člen | 667
+
0
-

XHR2 posílá soubory přes XHR.upload(). Problém je v rozšířenosti: Safari a chrome Na odesílání přes iframe jsou pluginy do jquery, nezkoušel jsem je ,ale známý je http://plugins.jquery.com/…me-post-form .