Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateigröße mit Javascript überprüfen

Frage Entwicklung Webentwicklung

Mitglied: 17735

17735 (Level 2)

31.12.2006, aktualisiert 26.03.2007, 10427 Aufrufe, 9 Kommentare

Gibt es eine Möglichkeit, per Javascript eine Datei auf ihre Größe zu überprüfen, bevor sie hochgeladen wurde?

Hallo,

folgende Situation: Eine HTML/PHP-Seite, die ein Formular ausgibt. In diesem Formular besteht die Möglichkeit, eine Datei auf dem Computer auszuwählen und hochzuladen (<input type="file" />). Nun möchte ich, das Javascript überprüft, ob diese ausgewählte Datei eine vorgegebene Dateigröße überschreitet oder nicht, und falls ja per alertbox warnt. Und zwar bevor alles auf den Server hochgeladen wurde.

Zwar überprüft der PHP-Interpreter auf dem Server nachher auch, ob die Datei sich an die Bestimmungen hält (schon allein aus Sicherheitsgründen; auch wenn es mit Javascript klappen sollte könnte der Benutzer JS deaktivieren); jedoch möchte ich dem User die Wartezeit für das unnötige Hochladen einer zu großen Datei ersparen. Außerdem ist nach dem Hochladen auch nach einem Klick auf den Zurück-Button das Feld leer.

Also, gibt es so eine Möglichkeit?

Gruß,
Ahnenforscher
Mitglied: Dani
31.12.2006 um 12:49 Uhr
Hi,
was löst man heute nicht in JS sondern in PHP!
Ja - sowas lässt mich mit PHP realisieren. Hier mal ein kl. Beispiel.

Formularcode:
01.
.... 
02.
Neue Datei hochladen: <input type='file' name='file' size='25'> 
03.
....
Auswertung:
01.
.... 
02.
<? 
03.
 //Variabeln festlegen 
04.
  $max_byte_size = 8097152; 
05.
  $allowed_types = "(doc|pdf|xls|rtm|txt|ppt|html|htm|dot|pps|zip)"; 
06.
  $namedokument=$_FILES["file"]["name"]; 
07.
    
08.
  //Wurde wirklich eine Datei hochgeladen? 
09.
  if(is_uploaded_file($_FILES["file"]["tmp_name"])) 
10.
11.
    //Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen) 
12.
    if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) 
13.
14.
      //Datei auch nicht zu groß 
15.
	  if($_FILES["file"]["size"] <= $max_byte_size) 
16.
17.
 	    //Alles OK -> Datei kopieren 
18.
		if(copy($_FILES["file"]["tmp_name"], "../shortnews/".$ordnername."/dokumente/".$namedokument)) 
19.
20.
		  $verzeichnis="../shortnews/".$ordnername."/dokumente/".$namedokument; 
21.
          echo "<span class='fliesstext'>Sie haben erfolgreich ein neues Dokument hochgeladen: <b>".$namedokument."</span></b>"; 
22.
23.
		else 
24.
25.
		  echo "<span class='fliesstext'>Datei konnte nicht hochgeladen werden.</span>"; 
26.
27.
28.
	  else 
29.
30.
		echo "<span class='fliesstext'>Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.</span>"; 
31.
32.
33.
	else 
34.
35.
	  echo "<span class='fliesstext'>Die Datei besitzt eine ungültige Endung.</span>"; 
36.
37.
38.
  else 
39.
40.
    echo "<span class='fliesstext'>Keine Datei zum Hochladen angegeben.</span>"; 
41.
42.
...
Den Pfad wohin die Datei kopiert werden muss, solltest natürlich anpassen. Ganz oben hast du die Möglichkeit Dateitypen festzulegen!
Hier noch ne kl. Hilfe: http://aktuell.de.selfhtml.org/artikel/php/php-uploadcheck/


Gruß
Dani
Bitte warten ..
Mitglied: 17735
31.12.2006 um 13:00 Uhr
Sorry Dani, aber du hast mich falsch verstanden: Das ganze wird mit PHP überprüft: Siehe mein Beitrag.

Nur zusätzlich möchte ich noch Javascript ans Werk lassen, um dem Benutzer unnötige Hochladezeit zu ersparen!

Gruß,
Ahnenforscher
Bitte warten ..
Mitglied: Dani
31.12.2006 um 13:09 Uhr
Hi,
Nur zusätzlich möchte ich noch Javascript ans Werk lassen, um dem Benutzer unnötige Hochladezeit zu ersparen!
Klar..aber warum nochmal prüfen. Mein Scirpt prüft vor dem hochladen ob die Größe passt. Ansonsten kopiert dieses auch nichts auf den Server!


Gruß
Dani
Bitte warten ..
Mitglied: Enclave
06.01.2007 um 15:16 Uhr
Er will die Dateigröße schon vor einem Seitenwechsel überprüfen lassen. Nur weis ich leider nich wie das gehen soll und warum?

Mfg

Enclave
Bitte warten ..
Mitglied: JanMunch
21.03.2007 um 23:22 Uhr
genau vor dem problem stehe ich auch grade... Ich würde gern direkt wenn der User den File auswählt die Filedaten auslesen. Um z.B. dem benutzer eine Information darüber zu geben wie lange der Upload ca dauert. Ich denke das kann eigentlich nur mit Javascript gehen.

Das Problem an eurer Lösung ist doch das wenn man die Datei per Formular absendet die Datei bereits in den Temporeren Ordner des Servers gelegt wurde und euer script nur den kopiervorgang auf dem Server stopt (der im algemeinen nicht lange dauert).

Momentan hab ich meinen Uploadscript so erstellt das er beim Upload per Javascript einfach das Formular ersetzt durch einen Ladebalken. Jetzt würde ich gerne dem User noch die Zeit anhand der Dateigröße angeben. Nur ich hab keinen blaßen schimmer wie ich die dateigröße ermittle noch vor dem Upload
Bitte warten ..
Mitglied: Dani
22.03.2007 um 09:44 Uhr
Hi,
also du kannst die "if" - Abfrage auch früher abfragen (siehe Code oben). Also das dürfte doch noch machbar sein, oder?!


Grüße
Dani
Bitte warten ..
Mitglied: JanMunch
22.03.2007 um 15:47 Uhr
01.
     //Datei auch nicht zu groß 
02.
      if($_FILES["file"]["size"] <= $max_byte_size) 
03.
04.
         //Alles OK -> Datei kopieren 
05.
        if(copy($_FILES["file"]["tmp_name"], "../shortnews/".$ordnername."/dokumente/".$namedokument)) //HIER WIRD DIE DATEI NUR AUS DEM TEMPORÄREN VERZEICHNIS RAUSKOPIERT. DER EIGENTLICHE UPLOAD PASSIERT BEIM KLICKEN AUF DEM ABSENDE BUTTON. 
06.
07.
          $verzeichnis="../shortnews/".$ordnername."/dokumente/".$namedokument; 
08.
          echo "<span class='fliesstext'>Sie haben erfolgreich ein neues Dokument hochgeladen: ".$namedokument."</span>"; 
09.
10.
        else 
11.
12.
          echo "<span class='fliesstext'>Datei konnte nicht hochgeladen werden.</span>"; 
13.
14.
15.
      else 
16.
17.
        echo "<span class='fliesstext'>Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.</span>"; 
18.
       }
der code bringt mir überhaupt nichts... Was bringt es mir wenn der User 30 minuten ne 50 MB Datei hochläd, um dan später die Meldung vom Server zu bekommen das die Datei zu groß ist. Wie gesagt, der eigentliche Upload erfolg schon bereits bevor der Code oben ausgeführt wird. Die IF Abfrage hier, verhindert nur das die Datei aus dem temp. verzeichnis des Servers irgendwo anders hin kopiert wird, wenn diese zu groß ist.

@Dani
Ob das machbar ist?
lol, natürlich ist das machbar aber für mich, auf deutsch gesagt, scheiss egal. ich kann wohl ne if abfrage machen aber die würde wiegesagt nur die BEREITS hochgeladen datei auf ihre größe überprüfen. Das Bringt Ahnenforscher und mir absolut nichts...
Bitte warten ..
Mitglied: 17735
23.03.2007 um 08:09 Uhr
Hallo JanMunch,

genau das was du realisieren willst, ist das was ich auch haben will: Die Dateigröße per Javascript zu überprüfen, bevor die Datei hochgeladen wurde. Ich habe versucht, Dani das verständlich zu machen, aber es hat nicht geklappt.

Mittlerweile glaube ich fast, dass man das mit Javascript gar nicht machen kann?

Gruß,
Ahnenforscher
Bitte warten ..
Mitglied: Dani
26.03.2007 um 22:10 Uhr
G' Abend Jungs / Mädels,
also ich habe es gerade mit dem folgenden Code versucht:
01.
<?php 
02.
if($_POST['submit']) { 
03.
$max_byte_size = 152; 
04.
  $allowed_types = "(doc|pdf|xls|rtm|txt|ppt|html|htm|dot|pps|zip)"; 
05.
  $namedokument=$_FILES["file"]["name"]; 
06.
    
07.
  //Wurde wirklich eine Datei hochgeladen? 
08.
  if(is_uploaded_file($_FILES["file"]["tmp_name"])) 
09.
10.
    //Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen) 
11.
    if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) 
12.
13.
      //Datei auch nicht zu groß 
14.
      if($_FILES["file"]["size"] <= $max_byte_size) 
15.
16.
         //Alles OK -> Datei kopieren 
17.
        if(copy($_FILES["file"]["tmp_name"], $namedokument)) 
18.
19.
          $verzeichnis=$namedokument; 
20.
          echo "<span class='fliesstext'>Sie haben erfolgreich ein neues Dokument hochgeladen: ".$namedokument."</span>"; 
21.
22.
        else 
23.
24.
          echo "<span class='fliesstext'>Datei konnte nicht hochgeladen werden.</span>"; 
25.
26.
27.
      else 
28.
29.
        echo "<span class='fliesstext'>Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.</span>"; 
30.
31.
32.
    else 
33.
34.
      echo "<span class='fliesstext'>Die Datei besitzt eine ungültige Endung.</span>"; 
35.
36.
37.
  else 
38.
39.
    echo "<span class='fliesstext'>Keine Datei zum Hochladen angegeben.</span>"; 
40.
41.
42.
else 
43.
44.
 echo "<form method='post' enctype='multipart/form-data'>"; 
45.
 echo "<input type='file' name='file'>"; 
46.
 echo "<input type='submit' name='submit' value='Hinzufügen'>"; 
47.
 echo "</form>"; 
48.
49.
 
50.
?>
Es funktioniert!!! Ob ihr es glaubt oder nicht. Denn erst mit der "copy"Zeile wird die Datei kopiert.


Grüße
Dani
Bitte warten ..
Ähnliche Inhalte
Mac OS X
Finale Dateigröße ohne Entpacken ermitteln
gelöst Frage von pelzfruchtMac OS X3 Kommentare

Moin, ich hab hier ein 27,1 GB großes *.bz2 Archiv. Das Problem: Wenn ich das Archiv entpacke könnte mich ...

Batch & Shell
Dateigröße und Änderungsdatum auslesen
Frage von michi-ffmBatch & Shell6 Kommentare

Hallo zusammen, ich habe folgendes Problem, vielleicht kann mir einer ja weiterhelfen. :) Dieses Skript funktioniert schon einmal wunderbar, ...

Apache Server
JavaScript wird nicht ausgeführt
Frage von schneerunzelApache Server

Hallo zusammen ich wollte gerade das Tool open3A installieren. Dabei bekomme ich einen Fehler die Dateien sind alle mit ...

JavaScript
Javascript Array
gelöst Frage von internet2107JavaScript2 Kommentare

Ich habe folgendes Problem. Ersetze ich die folgenden Zahlen gegen Variablenwerte, bekomme ich nicht das Ergebnis, wie mit festen ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 8 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 12 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...