Dateiname auf Sonderzeichen prüfen

newbi_1

Mitglied
Hallo, ich bin neu im Forum und auch in Javascript, seid also gnädig mit mir!!

Ich habe ein php-Script, bei dem eine Datei hochgeladen wird. Die Datei darf nur PDF sein keine Spnder bzw. Leerzeichen enthalten. Das prüfe ich mit Javascript. Leider klappt es mit verschiedenen Browsern nicht. Hab ich Fehler im Code?

PHP:
function check_upload(value) {
	bericht = value.substring(value.length-3,value.length);
	bericht = bericht.toLowerCase();
		if (bericht != "pdf") {
			alert(unescape("Der REI-Bericht mu%DF ein PDF-Format sein\n\n"));
			document.Eingabeformular.reibericht.focus();
			return false;
		}
	
		regex = /^[a-zA-Z0-9_.:\\\/-]*$/;
		result = regex.test(value);
		if (result == 0) {
			alert("Der Dateiname darf keine Sonder- oder Leerzeichen beinhalten.");
			document.Eingabeformular.reibericht.focus();
			return false;
		}
}


Aufgerufen wird das Ganze

PHP:
echo ("<TD width=300><INPUT NAME='reibericht' SIZE=64 MAXLENGTH=6000000 TYPE='file' onclick='check_upload(this.value);' ACCEPT='application/pdf'></TD>\n");

Ich bin schon gespannt, weil ich eigentlich am Verzweifeln bin.
Eben ein Neuling
 
Ich habe nun weitergetestet und komme zum Ergebnis, dass es sich um irgendeine Einstellungssache des Browsers handeln muss.

Auf meinem Rechner funktioniert die Überprüfung auf Sonderzeichen hervorragend sowohl bei Mozilla als auch im IE. Aber bei den Arbeitskollegen wird jedes Dokument auch ohne Sonderzeichen von Mozilla als eines mit Sonderzeichen gekennzeichnet und abgewiesen.

Was tun?:confused:
 
Vielleicht hatte dein Kollege bspw. einen Umlaut im Dateinamen?

Ansonsten sehe ich da nichts, was nicht hinhauen würde(abgesehen von dem Slash innerhalb des Ausdrucks, das müsstest du escapen)
 
Ja eben, vielleicht weiss das dein Kollege aber nicht und betrachtet es als Fehler.

Poste doch mal als Beispiel einen Dateinamen, der bei deinem Kollegen nicht funktioniert.
 
z.B kann man das Dokument "Beispielbericht.pdf" nicht hochladen. Es wird javascript aktiviert "Dieser Dateiname enthält Sonderzeichen..."
 
Naja...im File-Input steht ja nicht nur der Dateiname, sondern der komplette Pfad, vielleicht enthält einer der Verzeichnisnamen in diesem Pfad ein "Sonderzeichen".
Weiterhin dürfte es bspw. auf LINUX-Rechnern ein Problem geben, weil ich mal davon ausgehe, dass dort im Pfad richtige Slashes und keine Backslashes verwendet werden.

Probiers mal so:
Code:
<script type="text/javascript">
<!--
function check_upload(value) 
{
  if(!value.match(/\.pdf$/i))
    {
      alert(unescape("Der REI-Bericht mu%DF ein PDF-Format sein\n\n"));
    }
  else if(!value.match(/((\\|\/)[a-zA-Z0-9_-]+\.pdf)$/i))
    {
      alert("Der Dateiname darf keine Sonder- oder Leerzeichen beinhalten.");
    }
  else
    {
      return true;
    }
  document.Eingabeformular.reibericht.focus();
  return false;
    
}  
//-->
</script>
 
Hallo netter Helfer,
ich bin ein Teleworker und morgen im Büro und teste morgen mit deinem Code weiter. Vielleicht bist Du ja dann auch online. Ich werde mich auf alle Fälle wieder melden und dir mein Ergebnis mitteilen.
Vielen Dank einstweilen, dass Du dir so viel Zeit genommen hast. :)
Aber eins sehe ich schon - Dokumentennamen mit Leerzeichen werden hochgeladen und das verursacht beim anschließendem FTP Probleme.
Danke und servus derweil
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück