Dateierweiterung überprüfen mit JavaScript?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abba
beitrag
bild
buchstabe
datei
endung
erweiterung
extension
fehlermeldung
format
formular
fragen
funktion
hat
letzte
lngen
mitarbeiter
parameter
sache
test
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo nochmal
Also da mir hier ja angeblich keiner helfen konnte habe ich mir mal versucht selber was zusammen zu basteln... ich h?tte nur eine bitte: Bei mir hats (nat?rlich) nicht funktioniert! Kann irgendwer mal dr?bergucken und mir verbesserungs vorschl?ge geben?
Also ich hab nicht besonders viel ahnung von JS
function isset(varname) {
if(typeof( window[ varname ] ) != "undefined") return true;
else return false;
}
function extension(string) {
var laenge = "";
var pos1 = "";
var pos2 = "";
var subanf1 = "";
var subanf2 = "";
var test = "";
laenge = string.length;
pos1 = laenge - 3;
subanf1 = laenge - 2;
pos2 = laenge - 4;
subanf2 = laenge - 3;
if(charAt(pos1)== ".") {
test = substr(subanf1, 3);
}
else if(charAt(pos2)== ".") {
test = substr(subanf2, 4);
}
else {
test = "";
}
var extensions = new Array();
Mitarbeiter[jpg] = "";
Mitarbeiter[bmp] = "";
Mitarbeiter[jpeg] = "";
Mitarbeiter[gif] = "";
Mitarbeiter[png] = "";
Mitarbeiter[JPG] = "";
Mitarbeiter[BMP] = "";
Mitarbeiter[JPEG] = "";
Mitarbeiter[GIF] = "";
Mitarbeiter[PNG] = "";
if(isset(extensions[test])) {
return true;
else {
return false;
}
}
Danke nochmal
NGK
Beitrag ge?ndert am 14.06.2006 17:49 von ngk -
Hi,
Wichtig: Java ist nicht JavaScript.
Egal, kommen wir zur Frage:
Das geht eigentlich ganz einfach mit folgendem Trick:
<script language="JavaScript" type="text/javascript"> <!-- function check_file(file_name) { // Die erlaubten Dateiendungen var allowed_extensions = new Array('jpg','gif','png'); // Dateiendung der Datei var extension = file_name.split('.'); extension = extension[extension.length - 1]; for (var k in allowed_extensions) { if (allowed_extensions[k] == extension) return true; } return false; } //--> </script> <form name="upform" action="upload.php" method="post" enctype="multipart/form-data" [b]onsubmit="check_file(document.upform.file1.value)"[/b]> <input type="file" name="file1"><br /> <input type="submit" value="upload"> </form>
Wenn das Formular verschickt wird, wird vor dem Verschicken noch ?ber den Parameter onsubmit mit der Funktion check_file() die Dateiendung ?berpr?ft.
Falls sie erlaubt ist (im array allowed_extensions) wird das Formular verschickt, andererseits abgebrochen.
Alles klar?
mfg,
hr
Beitrag ge?ndert am 14.06.2006 17:51 von heavyraptor -
Aso ok... abba du benutzt ja die funktion split.. was ist jetz wenn der datei name auch einen "." enth?lt? macht der das immer beim letzten?
EDIT: OK die sache hat sich split erzeugt ein array und mit
extension = extension[extension.length - 1];
greifst du auf alles hinter denm letzten punkt zu...
DANKE nochmal
NGK
Beitrag ge?ndert am 14.06.2006 17:58 von ngk -
Hi,
ok, kein Problem.
Eigentlich k?nntest du nat?rlich auch die Dateiendung in der php-Datei ?berpr?fen, aber das mit Javascript ist gar nicht so eine schlechte Idee, da dann schon gar nicht die Datei hochgeladen wird.
mfg,
hr -
Hi
Also ich habs mal in mein script eingebaut und es geht nicht...
http://ngkclan.ng.funpic.de/member_menu.php?id=neu&action=add
egal was f?r ein bild man einf?gt.. es geht nicht
Gru? NGK -
Hi,
ich hab das Problem entdeckt:
Die for-Schleife zur ?berpr?fung der Dateiendung sollte so aussehen:
var match = false; for (var k in allowed_extensions) { if (allowed_extensions[k] == extension) { match = true; break; } } if (match == false) { formErrors = "Das Bild ist nicht in einem erlaubten Format."; }
Das Problem war, dass immer eine Fehlermeldung erzeugt wurde, wenn die Endung nicht okay war. Man muss jedoch zuerst alle ?berprufen und dann schauen, ob eine der richtigen Endungen passt.
mfg,
hr
Beitrag ge?ndert am 14.06.2006 18:55 von heavyraptor -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage