Avatar billede kwanstudios Nybegynder
14. august 2005 - 18:41 Der er 10 kommentarer og
2 løsninger

Hent filnavn fra felt

Jeg sidder netop og prøver at tilpasse PmWiki til et design. I den anledning er jeg stødt på dens upload funktion som mangler en stor ting. Man får lov at vælge filen i et normalt <input type="file"> felt og skal derefter skrive det filnavn man ønsker filen skal have. Jeg vil gerne have at Javascript automatisk finder filnavnet og skriver det i det andet felt.

Jeg har fundet en løsning på http://www.thescripts.com/forum/threadedpost600856.html men min skal gerne virke i så mange browsere som muligt.
Avatar billede roenving Novice
14. august 2005 - 18:51 #1
Sådan, måske:

<form>
  <input type="file" onchange="this.form.filnavn.value=this.value.substring(this.value.lastIndexOf('\\')+1);">
  <input name="filnavn">
</form>
Avatar billede roenving Novice
14. august 2005 - 18:53 #2
Hrm, i alle andre af mine browsere end Mozilla fungerer det fint: IE, FF og Opera !-)
Avatar billede kwanstudios Nybegynder
14. august 2005 - 19:23 #3
Hvad med Mac og Unix? På min Powerbook tager den bare alt hvad der står i første felt og putter i det andet.
Avatar billede kwanstudios Nybegynder
14. august 2005 - 19:28 #4
Grunden er jo nok at Windows bruger C:\Windows\mappe\fil.fil hvor Mac/Unix bruger home/test/test

Altså omvendt slash :-) Kan man tage højde for det i scriptet?
Avatar billede kwanstudios Nybegynder
14. august 2005 - 19:40 #5
Er det muligt at gøre sådan at den vælger det der står efter enten det sidste / eller \?
Avatar billede kwanstudios Nybegynder
14. august 2005 - 19:47 #6
Jeg tror også at Safari kun sender den sidste del af stien med. Måske skal det udvides lidt med noget detection? http://www.quirksmode.org/js/detect.html
Avatar billede nielle Nybegynder
14. august 2005 - 20:15 #7
Denne variant synes at virke i Mozilla. Den burde også virke på Linux og Mac:

<script type="text/JavaScript">
function sync(elm)
{
    text = elm.value;
    pos = text.lastIndexOf('\\');
    if (pos == -1) pos = text.lastIndexOf('/');
    document.getElementById("filnavn").value = text.substring(pos+1);
}
</script>

<form>
    <input type="file" onchange="sync(this)">
    <input id="filnavn" name="filnavn">
</form>
Avatar billede kwanstudios Nybegynder
15. august 2005 - 00:07 #8
Jeg løste problemet ved at fjerne feltet i PmWiki. Jeg takker for jeres hjælp så smid hver et svar og I vil få point.
Avatar billede roenving Novice
15. august 2005 - 00:11 #9
Løste og løste, men du fik det i hvert fald til at virke fungerende !-)

-- og jeg kan ikke se, at jeg har gjort mig fortjent til mere end max. 30 point, så du må jo også selv beholde de allerfleste '-)
Avatar billede nielle Nybegynder
15. august 2005 - 07:24 #10
Svar :^)
Avatar billede roenving Novice
15. august 2005 - 12:44 #11
-- tak for point ;~}
Avatar billede nielle Nybegynder
15. august 2005 - 23:11 #12
Takker muy gracias for point. :^)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester