Fájlfeltöltés IE-vel

Üdv!

Szeretnék egy fájlfeltöltős oldalt készíteni, de mivel olyan jól sikerült megcsinálni az < input type="file" > tag-et, hogy még véletlen sem lehet az ocsmány feltöltés gombot testre szabni, ezért trükközéshez kell folyamodni.

Az alap ötlet innen jött. Ezen belül is innen. Ezt kicsit tovább fejlesztve elkészítettem a saját verziómat. Természetesen FF alatt tökéletesen működik, de sajnos IE alatt természetesen nem jó.

A következőt vettem észre, ha az < input type="file" > tag-nek beállítok valamilyen nevet (name attribútum), akkor a feltöltés gombra kattintva, annyi történik, hogy kitörli az elérési utat az input mezőből.
Mivel elég nehéz ezt leírni szavakkal csináltam egy példát.

Az első esetben nem adom meg a name property-t, a Browse gombbal betallózol egy fájlt, majd rámész az Upload gombra, látszik, hogy az oldal újratölt, elküldi a fájlt. Ugyanezt megcsinálva a második form-al csak annyit látsz, hogy kitörlődik az input mezőből az elérési út, amikor az Upload gombra nyomsz, persze ha megint rányomsz akkor elküldi a form-ot de akkor már csak üres input mezőt fog küldeni...

Azt is észrevettem, hogy ha a < input type="file" > tag-hez tartozó Tallózás gombbal töltöm be a fájlt, akkor működik a dolog.

Tudom Google-el találok sok ilyen trükköt, amivel testre lehet szabni a feltöltés gombot, de ez tűnik a legegyszerűbbnek és nem akarnám túlbonyolítani.

Hozzászólások

Használj Flash-es filefeltöltőt
- minden böngészővel működik (nyilván plugin kell hozzá)
- testreszabható
- támogatja a többszörös filefeltöltés

Szerintem vess egy pillantást a két technológia elterjedtségére, bár annyiból igazad van, hogy lehetőség szerint ne várjunk el semmit, és legyen graceful degradation.
De a Flash használatától még degradálódhat gracefullosan, cserébe felhasználói élménynek számít egy weboldal felhasználóbarátsága is. Ez alapján arra hajlok, hogy ha ezzel az oldal funkcionalitása javul, érdemes kihasználni ezt a verziótól függően 85-99.5%-os penetrációval bíró technológiát.

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

az elérési utat security okokból törli, amikor szkriptből állítod be. egyébként nem értem, mi a probléma.

Sztem a legjobb megoldás, ha keresel valami js/jquery alapú kész megoldást, amivel akár mondjuk több fájlt is fel lehet tölteni. Azokat általában testre is lehet szabni.