Für jedes 'file' eine seperate Upload-Progressbar.

  • Hi.


    Vorab:

    Ich kann etwas (mehr oder weinger ^^) HTML, CSS, PHP, SQL.

    Aber mit JS hab ich mich nie wirklich beschäftigt.


    Ich habe ein kleines Uploadscript für single-files , mit progressbar.

    Dieses möchte ich zum multi-upload ändern, mit einer Progressbar je Datei.
    ... (Ja, das Uploadscript ist aus einem Script-Beispiel von einer anderen Internetseite, modifiziert.)



    Den Multiupload dazu habe ich hinbekommen, aber nicht die progressbars, es geht immer nur eine.

    Das hatte ich mir an der stelle zu einfach vorgestellt, funktionen duplizieren, variablen der einzelnen dateien einfach mit einem angehängten Zähler ala "$i=0; ... i++", so wie ich es kenne ... Das geht hier aber leider nicht.


    Ich bin bisher soweit, dass ich die gesamte Datenmenge in einer Progressbar darstellen kann, aber ebend nicht, wie ich es ursprünglich wollte, eine Progressbar je 'file'.


    Ich muss dazu noch anmerken, dass ich hierbei gemerkt habe, dass ich von js-grammatik keine , und von js struktur nicht all zu viel ahnung habe. Strukturen , Variablen, Funktionen und co kenne ich nur aus dem PHP heraus. Ist ja teilweise ähnlich.


    - Hier der Link zur Test-Seite mit dem Problem:
    http://www.downloadarchiv.org:2288/index4.php

    - Das Script in dieser Version:

  • Wenn ich das richtig sehe, brauchst Du nur die Variable client ebenfalls spezifisch für jeden Upload anzulegen, dann sollte es funktionieren.

    In einem weiteren Schritt könntest Du dann die Daten in einem Array ablegen und die ganzen Vorgänge in einer Schleife bearbeiten, dann musst Du Variablen und Funktionen nicht vervielfachen. Besonders eine Erweiterung auf mehr Uploads wäre dann einfacher.

  • Hi.


    Danke für deine Antwort und Idee.

    Auf client wäre ich nicht gekommen, die var hab ich beim überlegen ganz ausser acht gelassen *duck* ;)

    Ich denk das ganze nochmal durch in der Beziehung und probiere ggf das eine und andere.


    Wegen der Arrays - das kommt dann später, wenn Strukturen und funktionen klar sind. :)

    (Da hab ich dann nochmal zu kämpfen, mit arrays steh ich teilweise auch auf kriegsfuss, muss da auch noch etwas praxisbezogen "nachlernen" ^^ )

  • Sorry, ich hab einiges durchprobiert / experimentiert, bekomme es aber nicht hin.

    (Ich hab auch mitbekommen, ich hab hier die falsche Bastelversion vom script gepostet, sorry.)


    Hier ist nochmal, die richtige Version:


    Wenn ich die var client einfach in clientA und clientB Bereiche aufsplitte funktioniert es leider nicht. Bin noch am grübeln wegen var formData, aber die muss ich eigendlich nicht splitten, wäre auch problematisch. (ausser ich gebe jedem upload ein seperaten script z.bsp. in nem iframe, das wäre aber relativ unübersichtlich und verkompliziert.


    Hast Du da einen noch etwas genaueren Plan?

    (das script hier hab ich mal als index6.php eingestellt)


    Auch gerne gemeinsam via ICQ oder Skype-Text-Chat

  • Da sträuben sich mir die Nackenhaare so etwas durch Verdoppeln der Funktionen zu machen, aber weil Du schreibst, dass die Schleifen später kommen, habe ich es mal so gemacht.

    upload2.php:

    PHP
    <?php
    if (isset($_FILES['dateiA'])) {
        move_uploaded_file($_FILES['dateiA']['tmp_name'], 'uploads/'.basename($_FILES['dateiA']['name']));
    }
    if (isset($_FILES['dateiB'])) {
        move_uploaded_file($_FILES['dateiB']['tmp_name'], 'uploads/'.basename($_FILES['dateiB']['name']));
    }
    ?>
  • Hi.


    Ersteinmal Danke für deine Vorschläge / Modifikationen.

    Sieht etwas andersaus. Beim drüberschauen ist mir aufgefallen, daß Du das Script schon etwas optimaler strukturiert hast, als meins war, um die Schleifen besser bauen zu können. Ein dickes Danke dafür. :)


    Ich werde mich da morgen noch einmal intensiver dransetzen, alles durchgehen und testen.

    Natürlich ist das auch gut für mich, um etwas mehr aus dem Bereich JavaScript zu lernen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!