Avatar billede qqq Nybegynder
05. maj 2008 - 14:02 Der er 8 kommentarer og
1 løsning

Validering af billede til upload

Jeg skal have lavet et Javascript som tjekker billedet, som brugere ønsker at uploade, men da jeg ikke kender så meget til Javascript, vil jeg høre om der er nogen her på Eksperten, som kan hjælpe mig med dette.

Når brugere har valgt et billede de ønsker at uploade og trykker "Upload", skal der tjekkes for følgende.

Først skal der tjekkes for om filtypen er korrekt. Der skal kun tillades .jpg og .gif. Hvis filtypen ikke er okay, skal der vises en alertbox, som informerer brugeren om dette.

Hvis filtypen ER okay, skal der tjekkes for navnet på billedet. Navnet på billedet må kun indeholde nedenstående:

a-z (store & små bogstaver)
0-9
æøå (store & små bogstaver)
-_ (bindestreg & underscore)
()
Mellemrum (space)

Hvis billedet indeholder andre tegn end de ovenstående, skal der vises en alertbox, som informerer brugeren om dette.

Det skal være muligt at submitte formularen uden at have valgt et billede til upload.
Avatar billede roenving Novice
05. maj 2008 - 14:25 #1
Ikke gennemtestet (jeg havde simpelthen ikke billeder med navne, der ikke matchede betingelserne !-)

<script language="javascript" type="text/javascript">
function valider(f){
  var billednavn = f.upload.value.replace(/^.*[/\\]([^/\\]+)$/,"$1");
  if(billednavn){
    if(!billednavn.match(/\.(gif|jpe?g)$/i)){
      alert("Du skal vælge en gif eller jp(e)g-fil til upload");
      return false;
    }
    if(!billednavn.match(/^[a-zæøå\d\(\)_ -]+\.(gif|jpe?g)$/i)){
      alert("Dit uploadbilledes navn må kun indeholde:\nalmindelige danske bogstaver, tal, -, _, mellemrum og paranteser !-)");
      return false;
    }
  }
  //her kan du så sætte evt. andre betingelser ind
  return true;
}
</script>

<form id="minForm" name="minForm" onsubmit="return valider(this);">
<br><input type="file" name="upload">
<br><input type="submit" value="Upload"><br>

</form>
Avatar billede jokkejensen Novice
05. maj 2008 - 14:40 #2
Man kan ikke tjekke filtypen med javascript. Extension jo.

/JJ
Avatar billede roenving Novice
05. maj 2008 - 14:46 #3
Obvenstående virker fint, og du kan sagtens aflæse filnavnet !-)
Avatar billede roenving Novice
05. maj 2008 - 14:47 #4
-- men det betyder ikke, at man ikke også skal checke det serverside, for js-valideringer kan sagtens omgås !o]
Avatar billede jokkejensen Novice
05. maj 2008 - 14:56 #5
ja det er bare rename filnavnet.. Det var også bare lige den server validering jeg var efter :)
Avatar billede qqq Nybegynder
05. maj 2008 - 15:06 #6
roenving -- Det ser ud til at virke perfekt. Mange tak for hjælpen, læg venligst et svar, så du kan få dine velfortjente point :)

Mht. at omgå javascriptet, så har jeg den nødvendige server validering på plads.
Avatar billede roenving Novice
05. maj 2008 - 15:08 #7
Men behold selv langt de fleste point !-)

-- els velbekomme '-)
Avatar billede roenving Novice
05. maj 2008 - 16:22 #8
Tak for point ;~}
Avatar billede olebole Juniormester
05. maj 2008 - 21:39 #9
<ole>

RegExp'en kunne vel forkortes en anelse til:
    if (!billednavn.match(/^.*\.(gif|jpe?g)$/i)) {

- eller:
    if (!(/^.*\.(gif|jpe?g)$/i).test(billednavn)) {

- men spørgsmålet er, om det er smart at tillade æ, ø, å og mellemrum. De tegn giver ofte problemer i forbindelse med filnavne på WWW (som det er mere end kendt fra f.eks. PHP-kategorien)  ;o)

/mvh
</bole>
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