Siegfried Dolleisch: Dateigröße für Upload bestimmen

Hi,

möchte gerne die Dateigröße vor dem Upload bestimmen, also das Ganze clientseitig lösen.
Mein Script tut leider noch nichts, woran könnte es liegen?

Bin (leider) nur äußerst selten mit JavaScript unterwegs...

<html>
<head>
<title>Dateigröße bestimmen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<script language="JavaScript">
function checkFileSize()
{
var axo = new ActiveXObject("Scripting.FileSystemObject");
var fileToCheck = document.getElementById("lotImageFileUpload").value;
var FileSize = axo.getFile(fileToCheck).size;
if(FileSize > 600000)
 alert("Datei ist mit " + FileSize + " bytes zu groß.");
else
 alert("Datei ist mit " + FileSize + " bytes NICHT zu groß.");

}
</script>

<body bgcolor="#FFFFFF">
<form method="post" action="">
     <INPUT TYPE=file NAME=lotImageFileUpload SIZE=35>
     <INPUT TYPE=submit VALUE="Dateigröße prüfen" onClick="checkFileSize();">
</FORM>
</body>
</html>

  1. Hi,

    möchte gerne die Dateigröße vor dem Upload bestimmen, also das Ganze clientseitig lösen.

    das ist verständlich, aber dennoch schade.

    Mein Script tut leider noch nichts, woran könnte es liegen?

    Daran, dass Du kein JavaScript einsetzt (bzw. nur als Hilfsmittel), sondern ActiveX, welches außer bei suizidgefährdeten Rezipienten deaktiviert sein dürfte.

    <html>

    DOCTYPE fehlt.

    <script language="JavaScript">

    type-Attribut fehlt.

    var axo = new ActiveXObject("Scripting.FileSystemObject");
    var fileToCheck = document.getElementById("lotImageFileUpload").value;
    var FileSize = axo.getFile(fileToCheck).size;

    Existenzprüfungen fehlen.

    <body bgcolor="#FFFFFF">

    CSS fehlt.

    <form method="post" action="">

    URI im action-Attribut fehlt.

    <INPUT TYPE=file NAME=lotImageFileUpload SIZE=35>

    Der Validator wird Dir noch mehr fehlende Dinge nennen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi Cheatah,

      wenn es eine Lösung ohne ActiveX gibt würde ich die gerne hernehmen.
      Bei meinen Recherchen fand ich leider keine :-(

      Gruß

      Siegfried

      1. Hi,

        wenn es eine Lösung ohne ActiveX gibt würde ich die gerne hernehmen.
        Bei meinen Recherchen fand ich leider keine :-(

        Deine Recherchen waren hinreichend.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo Siegfried,

        wenn es eine Lösung ohne ActiveX gibt würde ich die gerne hernehmen.
        Bei meinen Recherchen fand ich leider keine :-(

        Dann hast du nicht gut genug gesucht.
        Siehe mein anderer Post.

        Und nehme dir die Ratschläge von Cheatah zu Herzen, er hat wesentlich mehr Tipps gegeben als ich. Du musst sie nur noch entschlüsseln... ;-)

        Grüße

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
        http://emmanuel.dammerer.at/selfcode.html
        1. Hi,

          Dann hast du nicht gut genug gesucht.

          doch, schon.

          Siehe mein anderer Post.

          Da verschweigst Du, dass sich dies eines erheblichen Mangels an Unterstützung erfreut (auch wenn es in einem gewissen Zusammenhang zur Umgehungsmöglichkeit steht). Es existiert effektiv kein Weg, die Problematik clientseitig abzufrühstücken.

          Es sei denn, man schreibt einen eigenen Client, versteht sich.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hallo Cheatah,

            Dann hast du nicht gut genug gesucht.

            doch, schon.

            Der Satz ging eigentlich an Siegfried. ;-)

            Siehe mein anderer Post.

            Da verschweigst Du, dass sich dies eines erheblichen Mangels an Unterstützung erfreut (auch wenn es in einem gewissen Zusammenhang zur Umgehungsmöglichkeit steht). Es existiert effektiv kein Weg, die Problematik clientseitig abzufrühstücken.

            Ja. Es ist aber der einzige gängige Weg, alle anderen Methoden sind derzeit inakzeptabel.
            Ein eigener Client wäre natürlich eine gute Möglichkeit, aber das wollte Siegfried bestimmt nicht wissen.

            Grüße

            Marc Reichelt || http://www.marcreichelt.de/

            --
            Linux is like a wigwam - no windows, no gates and an Apache inside!
            Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
            http://emmanuel.dammerer.at/selfcode.html
    2. Hallo,

      <form method="post" action="">

      URI im action-Attribut fehlt.

      Naja, das täuscht, »« ist m.W. durchaus eine gültige relative URI, sie verweist auf das aktuelle Dokument.
      Ich finde auf die Schnelle nicht die formale Regel, aber das Beispiel in Abschnitt 5.4. von RFC 3986 bestätigt meine Vermutung. Ich kenne das vor allem aus RDF, mit <rdf:Description about=""> notiert man Metadaten über das aktuelle Dokument.

      Mathias

      1. Naja, das täuscht, »« ist m.W. durchaus eine gültige relative URI, sie verweist auf das aktuelle Dokument.
        Ich finde auf die Schnelle nicht die formale Regel

        Äh, wo suche ich denn, steht doch groß in der formalen Syntaxdefinition drin.
        URI-reference = URI / relative-ref
        relative-ref  = relative-part [ "?" query ] [ "#" fragment ]
        relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty
        path-empty    = 0<pchar>

  2. Hallo Siegfried,

    JavaScript ist hier der komplett falsche Lösungsweg. Aus Sicherheitsgründen könnte das sowieso nicht auf das Datei-Input-Feld zugreifen. Was du suchst steht hier:
    http://de.selfhtml.org/html/formulare/datei_upload.htm#definieren

    Allerdings sollte das CGI-Skript, welches die Datei empfängt, die Größe nochmals prüfen. Schließlich läuft die oben genannte Überprüfung Client-seitig ab und kann sehr einfach ausgehebelt werden.

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html