Avatar billede alleslev Nybegynder
06. oktober 2003 - 21:51 Der er 28 kommentarer og
1 løsning

Sætte fil - filter på et <form> fil felt

Ja

jeg ved ikke lige hvor meget titel en siger, men det jeg gernme vil er at i sådan et opload felt, når man så trykker på gennemse kommer der en åben menu, er der så mulighed for at sætte et filter på hvilke fil typer der gotages ligesom der er i vb??

Håber i kna hjælpe:-)
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 21:54 #1
hvad med en onchange event i javascript?
onChange="check()", hvor funktionen check() kigger på de 3 sidste tegn i textboxen.. hvis f.eks. kun må være "txt", og brugeren har loaden en "doc", kan du slette indholdet af textboxen, og give brugeren beskeden "Kun txt filer må oploades!"..

hvad synes du?
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 21:56 #2
med andre ord: jeg ved ikke om man kan bruge et filter..
jeg kom bare med en alternativ løsning..

hmm.. for at brugeren ikke kan snyde ved at downloade formen, kan du lave selve check funktionen via asp på serveren..
Avatar billede erikjacobsen Ekspert
06. oktober 2003 - 22:00 #3
Du kan bruge (se http://www.html.dk/dokumentation/html4/tags/input/)

accept="indholdstype"
    Angiver hvilke typer filer, der må uploades, når man bruger elementet til upload af filer.

MEN det er ikke alle browsere der overholder det.
Avatar billede alleslev Nybegynder
06. oktober 2003 - 22:14 #4
Takker, i må jo smide et svar vis der skla falde nolge point!!
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 22:24 #5
her er et svar hvis du har tænkt dig at bruge check-funktions-løsningen :)
Avatar billede erikjacobsen Ekspert
06. oktober 2003 - 22:26 #6
Jeg skal først vide om du kan bruge mit forslag og det virker - ellers er
det selvfølgelig gratis.
Avatar billede alleslev Nybegynder
06. oktober 2003 - 22:33 #7
Jeg tror jeg holder mig til den enkel måde accept og det virker, er ikke særlig god i java script he he men tak begge to!!
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 22:34 #8
det kunne jo også laves i asp.. så er du 100% på at det virker :)
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 22:35 #9
*"..100% sikker på.."
Avatar billede alleslev Nybegynder
06. oktober 2003 - 22:45 #10
Okay, er det sådan at du lige hurtig kan smide koden her op:-)
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 22:52 #11
jeg prøver lige..
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:04 #12
prøv en test på det her:

<%
if (mid(request.form("minfil"), len(request.form("minfil"))-2)) = "txt" then
' filtype er ok, opload..
    response.write "Uploading.."
else
    response.write "Du må kun vælge txt filer!"
end if
%>
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:04 #13
doh.. den her:

<%
if (mid(request.form("minfil"), len(request.form("minfil"))-2)) = "txt" then
' filtype er ok, opload..
    response.write "Uploading.."
else
    response.write "Du må kun vælge txt filer!"
end if
%>

<form name="hmm" action="index.asp" method="post">
<input type="text" name="minfil">
<input type="submit" value="send">
</form>
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:05 #14
jeg har brugt en textbox til at simulere upload-feltet.. du skal kun bruge selve navnet på feltet (i mit eksempel "minfil")
Avatar billede alleslev Nybegynder
06. oktober 2003 - 23:10 #15
Ja den skulle jo nok virker men problemet er jo bare at jeg bruger en file felt og at når den sender filen er det som form-data, der kan du ikke gå ind og udskive hvad der står i feltet når det er form-data
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:14 #16
hmmm.. kan du ikke give den et navn, og så checke værdien af feltet med request.form("navnet") ?
Avatar billede alleslev Nybegynder
06. oktober 2003 - 23:17 #17
Nje kna man ikke når det er form-data desværre, den er svært at arbejde med, men læg et svar så får du poitn for dit forsøg:)
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:23 #18
et svar, men jeg prøver lige noget :)
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:37 #19
hmm.. jeg har prøvet med type="file".. og det her virker..

<form name="hmm" action="index.asp" method="post">
<input type="file" name="minfil">
<input type="submit" value="send">
</form>

<%
if len(request.form("minfil")) > 0 then
    strForm = request.form("minfil")
    strLenForm = len(strForm)
    strTmp = left(strForm, strLenForm -1)
    if (Mid(strTmp, strLenForm -3)) = "txt" then
        response.write "uploading.."
    else
        response.write "Du må kun vælge txt filer"
    end if
else
    response.write "Du skal først vælge en fil"
end if
%>


så med mindre at jeg mangler noget eller serveren opfører sig anderledes end IIS 5, så må det jo virke..
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:39 #20
denne linie:
strTmp = left(strForm, strLenForm -1)

burde have været:
strForm = left(strForm, strLenForm -1)
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:41 #21
og denne linie:
if (Mid(strTmp, strLenForm -3)) = "txt" then

skal så være:
if (Mid(strForm, strLenForm -3)) = "txt" then
Avatar billede alleslev Nybegynder
06. oktober 2003 - 23:47 #22
Så prøv at smide: enctype="multipart/form-data" op i din form denne kode er nemlig nødvendig for at oploade filen:)
Avatar billede thesurfer Nybegynder
06. oktober 2003 - 23:58 #23
dammit.. er det så hele formen der ikke kan bruges?
Avatar billede alleslev Nybegynder
07. oktober 2003 - 00:04 #24
Alt i formen sendes via denne from-data måde og det er derved ikke muligt at hende dataen på den måde, men jeg kommer da til at tænke på en ting længere ned i mit oplaod scipt, der har mna får lavet en variabel som heder filnav.filtype så skla man jo bare smide din kode ind der he he så er det jo nemt nok:)
Avatar billede thesurfer Nybegynder
07. oktober 2003 - 00:09 #25
LOL! Cool nok! :)
Avatar billede alleslev Nybegynder
07. oktober 2003 - 00:11 #26
Jeg siger tusind tak for hjælpen:-)
Avatar billede thesurfer Nybegynder
07. oktober 2003 - 00:12 #27
jeg har lagt mærke til at der bliver sat "" omkring filnavnet når du bruger type=file..

så skal du nok bruge -3 når du checker længden..

Det var så lidt:)
Avatar billede thesurfer Nybegynder
07. oktober 2003 - 00:14 #28
her er et par andre metoder du kan bruge hvis du ikke kan bruge .filtype:
1) smid det i en cookie :)
2) smid det i urlen, og brug request.querystring :)

hehehe
Avatar billede thesurfer Nybegynder
07. oktober 2003 - 00:28 #29
hmm.. jeg tror man bare kan bruge:

if lcase(right("adressen", 3)) = "txt" then
  'uploading..
else
  'ikke txt fil
end if

jeg ved ikke hvorfor jeg ikke tænkte på det :)
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
Kurser inden for grundlæggende programmering

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