hook_form_submit: nem lehet elérni a feltöltött fájlt

jf képe

Adva van egy űrlap, egy kötelezően kitöltendő fájl mezővel. A problémám az, hogy hiába választok ki fájlt, figyelmeztet, hogy a fájl mező üres. A fájl benne van a $_FILES tömbben, de a hook_form_submit() függvénynek átadott $form_values paraméterben már nincs meg.

Készítettem egy teszt modult a probléma demonstrálására:
http://193.224.246.75/webshop/?q=teszt
(A $from_values és a $_FILES van kilistázva a beküldés után.)

Itt pedig a forrás:
http://szoftverhiba.extra.hu/test.module

A többi modulban rendesen működik a fájlfeltöltés, úgyhogy kifogytam az ötletekből.

Hojtsy Gábor képe

És a többi modul is a $form_values-ból veszi ki a fájlt?

0
0
jf képe

Valóban. Tényleg miért is a $form_values-ból akarom kivenni a fájlt? A file_check_upload() függvénnyel minden gond nélkül el lehet érni. Viszont még mindig kérdés, hogy hogyan lehet kötelezővé tenni egy file mezőt. Erre most találtam meg a választ, a hivatalos dokumentációban, a #required leírásánál:
File fields are NOT allowed to be required.
Igen, RTFM, de láttam a doksiban, hogy a file-nak van #required paramétere, így fel se merült bennem, hogy itt nincs megvalósítva ez a funkció.

0
0
Hojtsy Gábor képe

A validate függvényedben ellenőrizheted, hogy megvan-e a fájl, és beállíthatsz az űrlap mezőre egy hibaüzenetet, ha nincs feltöltve semmi.

0
0