Hej! Hej!JavaScript (argh!)
Jag har ett cgi-skript därigenom besökare på min hemsida kan ladda upp filer till min server. Dock vill jag genom ett JavaSkript "banna" vissa filtyper. Om jag använder mig utav: document.upload.filer.value ==".shtml" så returneras ju värdet sant bara om textboxen innehåller .shtml och endast .shtml. Jag vill att värdet sant skall returneras oavsett vad som står före .shtml, exempelvis filnamn.shtml. Hur får jag detta att fungera?? Någon som kan skriva koden som fungerar?Sv: JavaScript (argh!)
En variant du skulle kunna köra är att använda dig av lite kod som skulle kunna se ut ungefär så här:
<FORM OnSubmit="return chkExtension();" NAME="frmUpload" ACTION="upload.cgi" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="file"><BR>
<INPUT TYPE="SUBMIT" VALUE="Ladda upp...">
</FORM>
och funktionen chkExtension() skulle kunna se ut så här:
function chkExtension()
{
// lägg in filnamnet i en variabel
var strFile = document.frmUpload.file.value;
// definiera regexpattern
var strPattern = /^.+(.jpg|.gif)$/;
// kolla filändelse filändelse
bFlag = strPattern.test(strFile);
if(bFlag){
// korrekt filändelse
return true;
} else {
// felaktiv filändelse
alert("Den här filen kan du inte ladda upp!");
return false
}
}
... typ.
För att tillåta fler filändelser så ändrar du i strängen
(.jpg|.gif)
genom att lägga till filändelser separerade med pipe-tecknet, alltså t ex
(.jpg|.gif|.html|.shtml)
osv...
... En annan variant är att kolla på servern vid mottagningen av filen, och om filen då har fel filändelse, så exit:ar skriptet...
Lycka till och lev väl,
Tom S.