Avatar billede zetn Nybegynder
02. januar 2004 - 19:53 Der er 19 kommentarer og
1 løsning

kun billede skal kunne uploades

Heysa, kan man lave det sådan at når jeg trykker "upload" i min form, tjekker den om det nu er et billede....

Det kunne jo være man kom til at tage en html fil i stedet, men det skal kun være muligt at gøre det med billeder.

- Jacob
Avatar billede killer_r Nybegynder
02. januar 2004 - 20:09 #1
Har du ikke noget kode vi kan kigge på...?

Det burde jo bare være at tjekke filnavnet på den fil du uploader... Altså om det er en jpg, gif eller png...
Avatar billede Slettet bruger
02. januar 2004 - 21:31 #2
skulle virke.. jeg har lavet det med .jpeg, .gif, .png og .jpg, men du kan nok godt finde systemet i det, hvis du kikker det igennem.. ellers kan jeg godt kommentere scriptet...


<form action='din uploadside.xxx' method='post' enctype='multipart/form-data' name='form'>
<input type='file' name='file' id='file' onchange='change()'>
<input type='submit' value='Upload'>
</form>

<script>
function change(){
    value = document.getElementById('file').value;
    splitstring = value.split(".");
    filetype = splitstring[splitstring.length-1].toUpperCase();
    if(filetype != "JPG"){
        if(filetype != "JPEG"){
            if(filetype != "GIF"){
                if(filetype != "PNG"){
                    alert("forkert filtype.. tilladte filtyper: jpg, gif og png");
                    document.form.reset();
                }
            }
        }
    }
}
</script>
Avatar billede zetn Nybegynder
02. januar 2004 - 21:48 #3
kan ikke rigtig få det til at virke...

Den begynder bare at uploade:

  <script>
function change(){
    value = document.getElementById('blob').value;
    splitstring = value.split(".");
    filetype = splitstring[splitstring.length-1].toUpperCase();
    if(filetype != "JPG"){
        if(filetype != "JPEG"){
            if(filetype != "GIF"){
                if(filetype != "PNG"){
                    alert("forkert filtype.. tilladte filtyper: jpg, jpeg, gif og png");
                    document.form.reset();
                }
            }
        }
    }
}
</script>

  <br><form style='display: inline' METHOD='Post' onchange='change()' ENCTYPE='multipart/form-data' ACTION='kundelogo.asp?key=1' id='form3' name='form3'">
  <input TYPE="file" NAME="blob" class="input">
  <input type='submit' name='Action' value='Upload billede'><br><br><font>
Avatar billede zetn Nybegynder
02. januar 2004 - 21:49 #4
har osse prøvet med:

value = document.getElementById('form3').value;
Avatar billede Slettet bruger
02. januar 2004 - 21:51 #5
<input TYPE="file" NAME="blob" class="input" id='blob'>

inputtet bliver fundet ud fra id.. derfor skal id='blob'
Avatar billede Slettet bruger
02. januar 2004 - 21:52 #6
value er valuen fra <input TYPE="file" NAME="blob" class="input" id='blob'>
Avatar billede zetn Nybegynder
02. januar 2004 - 21:53 #7
virker stadig ikke...
Avatar billede Slettet bruger
02. januar 2004 - 21:54 #8
afslutter du din form??
Avatar billede zetn Nybegynder
02. januar 2004 - 21:57 #9
Nu har jeg fået den til at virke... Men den sletter ikke valuen som den gør hvis jeg bruger din kode direkte...

koden:

<form style='display: inline' action='kundelogo.asp?key=1' method='post' enctype='multipart/form-data' id='form3' name='form3'>
<input type='file' name='blob' id='blob' onchange='change()'>
<input type='submit' value='Upload billede'>
</form>

<script>
function change(){
    value = document.getElementById('blob').value;
    splitstring = value.split(".");
    filetype = splitstring[splitstring.length-1].toUpperCase();
    if(filetype != "JPG"){
        if(filetype != "JPEG"){
            if(filetype != "GIF"){
                if(filetype != "PNG"){
                    alert("forkert filtype.. tilladte filtyper: jpg, gif og png");
                    document.form.reset();
                }
            }
        }
    }
}
</script>
Avatar billede Slettet bruger
02. januar 2004 - 22:01 #10
ahh... det er fordi formen hedder form3..
<form style='display: inline' action='kundelogo.asp?key=1' method='post' enctype='multipart/form-data' id='form3' name='form3'>
<input type='file' name='blob' id='blob' onchange='change()'>
<input type='submit' value='Upload billede'>
</form>

<script>
function change(){
    value = document.getElementById('blob').value;
    splitstring = value.split(".");
    filetype = splitstring[splitstring.length-1].toUpperCase();
    if(filetype != "JPG"){
        if(filetype != "JPEG"){
            if(filetype != "GIF"){
                if(filetype != "PNG"){
                    alert("forkert filtype.. tilladte filtyper: jpg, gif og png");
                    document.form3.reset();
                }
            }
        }
    }
}
</script>
Avatar billede zetn Nybegynder
02. januar 2004 - 22:07 #11
thx m8 - smid et svar
Avatar billede Slettet bruger
02. januar 2004 - 22:07 #12
har jeg gjort.. men her er et til :)..
Avatar billede zetn Nybegynder
02. januar 2004 - 22:08 #13
hmm - det virker ikke rigtig når jeg smider det ud på nettet?
Avatar billede Slettet bruger
02. januar 2004 - 22:09 #14
hmmm... hvad er adressen??
Avatar billede Slettet bruger
02. januar 2004 - 22:14 #15
kan det være, du har en anden form, som du includer, som hedder form3?? eller du bruger id='blob' et andet sted??
Avatar billede zetn Nybegynder
02. januar 2004 - 22:25 #16
nej... det er også holdt op med at virke offline nu...
Avatar billede zetn Nybegynder
02. januar 2004 - 22:25 #17
<form style='display: inline' action='kundelogo.asp?key=1' method='post' enctype='multipart/form-data' id='form3' name='form3'>
<input type='file' name='blob' id='blob' onchange='change()'>
<input type='submit' value='Upload billede'>
</form>

<script>
function change(){
    value = document.getElementById('blob').value;
    splitstring = value.split(".");
    filetype = splitstring[splitstring.length-1].toUpperCase();
    if(filetype != "JPG"){
        if(filetype != "JPEG"){
            if(filetype != "GIF"){
                if(filetype != "PNG"){
                    if(filetype != "BMP"){
                    alert("forkert filtype.. tilladte filtyper: jpg, jpeg, bmp, gif og png");
                    document.form3.reset();
                }
            }
        }
    }
}
</script>
Avatar billede olebole Juniormester
03. januar 2004 - 00:03 #18
<ole>

At man før i tiden kunne scripte på et input type="file" var en bug, der nu er rettet ... heldigvis  :)
Hvis du scripter på et sådan input, kan du ikke længere uploade noget med det - før siden reloades.

Under alle omstændigheder _skal_ du checke på serveren, hvad den modtager. Det er jo ikke noget problem at uploade en fil udenom din HTML-side ... og så er du jo ligeså meget på lokummet.

Alle checks på klienten er _kun_ til for brugerens skyld - det har intet med sikkerhed at gøre. I dette tilfælde er det ikke muligt at lave et fornuftigt check på klienten, så lav det udelukkende på serveren  :)

/mvh
</bole>
Avatar billede roenving Novice
03. januar 2004 - 00:17 #19
-- og en anelse simplere:

<form style='display: inline' action='java script:void(0)' method='post' enctype='multipart/form-data' id='form3' name='form3' onsubmit="return change(this)">
<input type='file' name='fil' id='fil'>
<input type='submit' value='Upload billede'>
</form>

<script>
function change(f){
  reg = /^.+\.(jpe?g|bmp|gif|png)$/i;
  if(!f.fil.value.match(reg)){
    alert("forkert filtype.. tilladte filtyper: jpg, jpeg, bmp, gif og png");
    document.form3.reset();
    return false;
  }else
  return true;
}
</script>
Avatar billede olebole Juniormester
03. januar 2004 - 00:30 #20
Vi prøver lige igen: Du kan _ikke_ scripte på en input type="file". Gør du det, kan du ikke længere uploade noget, før siden reloades  :)
/mvh
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