22. januar 2004 - 20:38Der er
16 kommentarer og 2 løsninger
Find filnavn fra upload-form
Hej :)
Jeg skal bruge lidt hjælp til at få lavet en fuld sti til et filnavn om til kun at indeholder filnavnet. Fx skal C:\test\test.txt laves om til test.txt. Det skal også virke under Linux, så /home/feldthaus/test.txt skal altså også laves til test.txt.
Det skal bruges til en upload-form. Når brugeren vælger en fil i <input type="file" name="userfile"> skal filnavnet automatisk indsættes i en <input type="text">. Men altså kun filnavnet - ikke den fulde sti!
http://test.fdsa.dk <-- Der er et eksempel på hvad jeg mener, men stien mangler altså at blive lavet om til kun at indeholde filnavnet.
Jeg er ikke speciel god til javascript, men jeg kan da lidt. Jeg vil i øvrigt gerne vide hvilke onxxxx jeg skal bruge ved <input type="file" name="userfile">, så jeg kan få noget kode udført når brugeren vælger en fil. Jeg har testet lidt og fandt ud af at onclick virkede i Mozilla men ikke i IE hvor onchange kun virkede i IE. Lige nu bruger jeg begge, men er det ikke et bedre alternativ?
hurtig illustration, det er rigtigt at onchange ikke funker i mozilla :-), sikkert grundet en masse sikkerhedsindstillinger :-)
evt. brug onblur, så vil funktionen blive kørt når folk trykker uden for feltet :-) (og det gør de jo når man trykker på upload :-))
<script type="text/javascript"> function weee(){ f = document.frm.hehe.value f = f.split("\\") f = f[f.length-1] document.frm.haha.value = f; } </script>
For ikke at skabe misforståelser, så SKAL det være lige så snart brugeren har valgt en fil at filnavnet ændres, så brugeren har mulighed for at ændre filnavnet, derfor vil onblur nok ikke virke som jeg vil have det.
Jeg venter lige på du får linux-syntaxen med, så tester jeg :)
Det ser jo ud til at virke, som jeg vil have det :)
Jeg tænkte på om man kunne lave et eller andet smart der gjorde at når weee() bliver kaldt, så finder den en filendelse (fx .jpg) og gemmer den i en variabel. Hvis man så retter i <input type="text">'en, så undersøger den lige om man har ændret ved filendelsen og hvis man har, så kommer den med en advarsel (fx i en 3. editboks). Undersøgelsen skal ikke være case-sensitive (.JpG = .jpg).
Blur virkede vist i øvrigt fint nok i IE, men den ville selvfølgelig ikke virke i Mozilla ;) Skal jeg bare både have en onblur og onclick eller hvad er smartest?
men så må vi jo hellere lave lidt fusk, men det er jo nok lidt overkill :-)
jeg ville personligt have brugt onblur og onchange, men onblur er jo ligeså fjollet som onclick, hvis de går ned og ændrer i filnavnet, og kommer til at give filfeltet focus igen!, af rene sikkerhedsårsager, har man desværre ikke lige mange muligheder i alle browsere :(
Det er netop derfor jeg ikke har lyst til at arbejde så meget med javascript. Jeg synes mangel på overholdelse af standarder i HTML er slemt, men i Javascript er det endnu værre. Man skal som udvikler være ekstra varsom, fordi brugerne kan bruge en masse forskellige klienter som virker forskelligt, samt brugeren simpelthen kan slå Javascript fra.
Derfor føler jeg mig på tynd is stort set hver gang jeg prøver at kode lidt javascript.
(lige lidt ligegyldig snak mens jeg venter :D )
Onblur virker i Mozilla, men ikke som jeg vil have det. Input-feltet skal opdateres lige så snart man har valgt filen - man skal altså ikke vælge et nyt felt først.
klart at du ville have funktionen udføret med det samme :-)
en anden ting er at du har helt ret med hensyn til at javascript er meget umuligt på tværs af platforme, til det vil jeg dog sige at med introduktionen af DOM, så er det blevet meget nemmere at få resultater der ligner hinanden, i vel og mærke de nyere browsere :-), så jeg syntes egentligt talt bare du skulle komme i gang med at kode noget javascript :o)
og sidst men ikke mindst, så skal man tænke over pointinflationen på eksperten...såeh, jeg nøjes fint med 30 point for dette :o) læg et svar og tag de 70 selv :o)
Oki, jeg har ikke været herinde i et stykke tid, men jeg har 4.300 point jeg ikke aner hvad jeg skal gøre af, så jeg tænkte at der nok var nogen der havde mere brug for dem end jeg havde... men ok, hvis det er det bedste for eksperten.dk så skal jeg nok beholde en del af mine point :o)
Men 40 point skal du sq have, du har været en stor hjælp ;-)
Men du får mig ikke til at gå aktivt ind i Javascript, jeg synes det er noget rod - bare syntaksen med at man selv bestemmer om man vil bruge ; (semikolon) eller ej kan skræmme mig væk ;)
om ikke andet vender man sig da til det når man roder med php, alså at smide semikolen efter alt :o)
det burde man vist så osse holde sig til i js :o)
tak for points :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.