Ankündigung

Einklappen
Keine Ankündigung bisher.

status abfrage bei datei upload

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • status abfrage bei datei upload

    hallo zusammen,

    hab da mal eine frage!?!

    habe einen uploader in php erstellt möchte nun während des
    upload vorgangs einen status balken oder einfach nur eine grafik anzeigen lassen...

    hat jemand eine ahnung wie ich das problem lösen kann ....?

    vorab danke webling


  • #2
    also es ist so weit ich weiß fast unmöglich einen balken zu erstellen der den upload anzeigt.

    Das mit dem Bild weiß ich nicht dafür sollte man eine wenig script sehen können dann kann dir bestimmt jemand hier sagen ob es möglich ist bei dir ein bild anzeigen zu lassen .

    mfg

    Kommentar


    • #3
      hier mal mein code !?!


      Code:
      <html>
      <head>
      <title>Datei Upload</title>
      
      <link rel=stylesheet type="text/css" href="styles.css">
      </head>
      <?php 	
      
      $tempname = $_FILES['file']['tmp_name'];
      $name = $_FILES['file']['name'];
      $type = $_FILES['file']['type'];
      $size = $_FILES['file']['size'];
      
      $tempname2 = $_FILES['file2']['tmp_name'];
      $name2 = $_FILES['file2']['name'];
      $type2 = $_FILES['file2']['type'];
      $size2 = $_FILES['file2']['size'];
      
      // abfrage des mime types !!!
      
      $mimetypen = array ("image/jpeg", "image/pjpeg");
      1
      if (in_array ($type, $mimetypen))
        {
         print "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&<font class='content_bold'>upload erfolgreich!</font>
      &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&</font><font class='content'>schließen";
        }
      else
        {
         print " <center>&&&&&&&&&&&&<font class='content_bold'>keine datei? oder falsches format?!</font>
      &&&&&&&&&&&&nochmal&&<font class='content'><font class='content_gray'>oder&&</font><font class='content'>schließen&&</font><font class='content_versteckt'>";  
        }
      // ende der abfrage mime type !!
      
      
      $übergabe = 'unten.jpg';
      $übergabe2 = 'oben.jpg';
      $newname = $übergabe;	
      $newname2 = $übergabe2;	
      
      
      copy("$tempname", "test/$newname2");
      copy("$tempname2", "test/$newname");
      
      
      
      ?> 	
      </html>
      mal gespannt, hab diese funktion schon auf anderen seiten gesehen.

      thx webling

      Kommentar


      • #4
        Dazu kann ich dir schonmal sagen, das du mit einer Serverseitigen Scriptsprache (was PHP ja nun mal ist) keinen erflog hast.
        Wenn du einen Webupload machst, sendet dein Browser erstmal alle daten an den Server, welcher - erst nach dem komplettten senden - auf diese angaben reagiert und entsprechend verarbeitet.

        Mit Browserplugins (irgendwie activeX oder so) könnte man das hinbiegen, aber das ist nun nicht wirklich das was du suchst, oder?

        (Falls es doch geht möge man mich verbessern )

        Kommentar


        • #5
          Ist zwar schon älter aber das mit der Fortschrittsanzeige geht sehr wohl! Habs selbst schon gemacht...

          Das Fortschrittsfenster ist ein IFrame welches sich alle 1 oder 2 Sekunden neu lädt und dadurch ein Perl/Cgi Programm ausführt welches die Größe der temporären Datei (Die der Webserver ja anlegt beim Upload) mit der Dateigröße vergleicht!

          Also geht definitiv!
          Ist jetzt etwas schwammig erklärt aber kann da etwas Code nachreichen.

          Kommentar


          • #6
            ähm ja ok .. dateigrößen von temp-files auslesen is ja nun kein hexenwerk ..
            und woher bzw wie hast du zugriff auf die größe der upload-datei? wenn die
            5MB groß is, dann wär's ja ganz nett wenn der fortschrittsbalken nicht schon
            bei 90% hängt wenn er 200k hochgeladen sind.

            also ich würde sagen: Eigentlich unsinnig so nen teil. Weil nen Fortschritts-
            balken haben alle Browser in der Statusleiste integriert. Genauer als der wirst
            du es wahrscheinlich nicht hinbringen. Und ohne auf irgend welche komischen
            elemente wie iframes, popups / ... die dann wieder irgendwo nicht anständig
            laufen wirste da wenig chancen haben.

            Kommentar


            • #7
              http://www.raditha.com/php/progress.php

              Schau dir das mal an
              Ist irgendwie logisch das für die Fortschrittsanzeige die Gesamtgröße der Datei gebraucht wird! Das ist also eine richtige Fortschrittsanzeige und nicht so´n Pseudo-Kramm....

              Natürlich kann man die auch in einen Framebauen, musst also kein IFrame oder Popup verwenden!

              Hab ich selbst schon bei einigen Projekten verwendet und funktioniert wunderbar! Vor allem brechen die Leute nicht ständig den Upload ab oder drücken auf Aktualisieren weil nichts passiert! Die Upload-Anzeige des Internet Explorers z.B. ist nämlich echt für´n Arsch, unscheinbarer gehts fast nicht...

              Kommentar


              • #8
                Hallo,

                das mit dem Upload an sich ist ganz einfach.
                Du machst z.B. in der Datenbank einen Eintrag mit dem Namen der Temporaeren Datei, der Dateigroesse, dem Startzeitpunkt des Uploads, etc.

                Dann nimmst du das Script und laesst es jede Sekunde neu laden (eine moeglichst simple Seite, damit der User diese schnell sieht).
                In dem Script pruefst du die groesse der temporaeren Datei und vergleichst das mit der Gesamtgroesse (-> Status und Fortschritt).
                Dann nimmst du als naechstes den Startzeitpunkt und errechnest wielange das schon dauert.
                Mit der Zeit und Hochgeladener Groesse errechnest du die mittlere Uploadgeschwindigkeit und kannst somit auch rausfinden wie lang der komplette Upload dauert.
                Dann ziehst du von der kompletten Dauer ganz einfach die vergangene Zeit ab und hast dann auch schon die Restzeit.

                Ist doch ganz einfach

                Kommentar


                • #9
                  nur so btw -> erst wird die datei gesendet, dann kommt php ran, wo bitte soll jetzt der eintrag in die datenbank stattfinden wenn php erst am drücker ist wenn die datei oben ist ?
                  robo47.net - Blog, Codeschnipsel und mehr
                  | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

                  Kommentar


                  • #10
                    Hallo,

                    daran hatte ich leider anfangs nicht gedacht.

                    Aber ich hab dennoch eine Idee:
                    Du kannst mit dem Formular zwei Seiten laden lassen.
                    Du legst zuvor fuer die SessionID ein Uploadverzeichnis fest (TempVerzeichnis aendern geht doch mit PHP Umgebungsvariablen, glaub ich).
                    Da kannst du dann wenigstens Anzeigen wieviel bereits hochgeladen wurde und was die mittlere Geschwindigkeit betraegt.

                    Ich werd aber mal noch weiterueberlegen
                    Vllt koennte man aber auch per JavaScript die Dateiinformationen vom Benutzer (auf dessen Rechner das auch ausgefuehrt wird) auslesen und an ein PHP Script uebergeben.
                    Danach wird der Upload von JS ausgefuehrt.
                    Also im Endeffekt:
                    Der User klickt auf Upload
                    -> Dateinfos an PHP Zweitscript uebergeben.
                    -> Upload starten
                    -> Datei am Server finden und Groesse jede Sekunde ueberpruefen und Status zeigen

                    Meinst du, dass das gehen koennte?

                    Mit freundlichen Gruessen

                    Kommentar


                    • #11
                      Zitat von chubie
                      Hallo,

                      daran hatte ich leider anfangs nicht gedacht.

                      Aber ich hab dennoch eine Idee:
                      Du kannst mit dem Formular zwei Seiten laden lassen.
                      Du legst zuvor fuer die SessionID ein Uploadverzeichnis fest (TempVerzeichnis aendern geht doch mit PHP Umgebungsvariablen, glaub ich).
                      Da kannst du dann wenigstens Anzeigen wieviel bereits hochgeladen wurde und was die mittlere Geschwindigkeit betraegt.

                      Ich werd aber mal noch weiterueberlegen
                      Vllt koennte man aber auch per JavaScript die Dateiinformationen vom Benutzer (auf dessen Rechner das auch ausgefuehrt wird) auslesen und an ein PHP Script uebergeben.
                      Danach wird der Upload von JS ausgefuehrt.
                      Also im Endeffekt:
                      Der User klickt auf Upload
                      -> Dateinfos an PHP Zweitscript uebergeben.
                      -> Upload starten
                      -> Datei am Server finden und Groesse jede Sekunde ueberpruefen und Status zeigen

                      Meinst du, dass das gehen koennte?

                      Mit freundlichen Gruessen
                      soweit ich weis kommt javascript nicht an die größe der datei die man hochladen will ran, d.h. bevor deine datei nicht hochgelkaden ist, kommst du nicht an die größe dieser ran
                      robo47.net - Blog, Codeschnipsel und mehr
                      | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

                      Kommentar


                      • #12
                        Aber du koenntest theoretisch ja auch den Wert des Feldes (= Pfad zur Datei) auslesen und vllt die groesse dieser Datei dann wieder bestimmen.

                        Oder muesste man das ganze dann mit Java loesen?

                        Kommentar


                        • #13
                          javascript hat bei meinen lokalen dateien nix zu suchen und in dem feld steht halt nur der pfad (read-only für JS) sowas wird wohl eben nur mit java gehen
                          robo47.net - Blog, Codeschnipsel und mehr
                          | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

                          Kommentar


                          • #14
                            *thread wieder ausgrab*

                            Also ich habe im Moment das gleiche Problem. Ich besitze einen Uploadservice und möchte nun einen Fortschrittsbalken oder wenigstens die Anzahl der bereits hochgeladenen MBs haben.

                            Da rapidshare.de auch sowas bietet muss es ja gehen. Da bin ich auch auf das Auslesen der Temp-Files gekommen.

                            Man könnte ein Script programmieren, welches eine Grafik alle 10 Sekunden neu lädt (so ist es auch bei rapidshare). Nur weiß ich nicht, wie ich an den Tempnamen der Datei komme?

                            Kann mir da jemand helfen?

                            MfG,
                            iRadiaX
                            Quedilo - Downloads schneller finden

                            Kommentar


                            • #15
                              Also ich mach es immer so, dass ich einen Teil der Seite mit Hilfe von ...

                              PHP-Code:
                              <div id="loading" style="display:none;"></div
                              ... verstecke. Dieser Teil kann z.B. eine Wird-geladen-Grafik enthalten oder ein Flash-Movie. Den Teil kann ich dann ganz einfach bei Absenden des Formulars mit JS auf sichbar schalten und voilà fertig.

                              Das Ganze hat zwar keinen Fortschrittsbalken, aber darum geht es auch garnicht. Hauptsache der User weiß, dass hier etwas im Gange ist und den Upload somit auch nicht abbricht.

                              Kommentar

                              Lädt...
                              X