Upload Und Fortschritt.

mckani

Erfahrenes Mitglied
Also Zu erst will ich erwähnen das ich seid 2 Tagen am googlen und am foren suchen bin..
Ich habe hier im forum sehr viele threads gesehen und auch im Google sehr Viel Gelesen.
Und ich habe auch soviele scripte etc. Runtergeladen und getested aber bin zu keinem ergebniss gekommen.

So Jetzt erzähl ich mal was das problem bzw. die Frage ist.

Ich bin einen Uplaod Script am Basteln.
Und was ich gerne haben will ist das es Innerhalb des Uploades,
also sobald das upload anfängt einen Fortschrittsbalken gibt bzw. ein echo " Es Wird geupploaded"
Mein Upload code
PHP:
if($_POST['send'])
{
if($_FILES['Datei']['size'] < "53477376"){
		        move_uploaded_file($_FILES['Datei']['tmp_name'], "uploads/".$wbbuserdata[username].$_FILES['Datei']['name']);
}
}
das ist die kurzfasund, da zwichen werden noch einträge in die datenbank etc. gemacht!

Gibt es irgenteinen code womit ich den zwischenstand irgentwie ausgeben kann
Ich hoffe ihr könnt mir weiterhelfen.
Danke an alle die mir weiterhelfen
Grüße
 
Vielleicht eine idee womit man es machen kann
JavaScript? Perl ?

Ich hatte im google ein perl script namens megaupload gefunden, aber leider habe ich es nicht zum laufen gebracht.Weil ich auch 0 ahnung von perl habe..

Ich würde mich über weiterempfehlungen sehr freuen.
Grüße
 
Ich denke mal, dass das schwierig wird. Um den Fortschritt anzeigen zu lassen, musst du ja anhand der Dateigröße und der Uploadgeschwindigkeit. So zumindest in JS. Ich glaube nicht, dass es da besondere Funktionen für gibt. Auf jeden Fall, auch wenn du die Uploadgeschwinigkeit hast, heißt das nicht, dass diese auch konstant bleibt. Also mit JS wird das nicht gehen. In Java denke ich schon eher. Lass mich aber gerne belehren.

Gruß fanste
 
Ich will ja nicht die geschwindigkeit messen, ich will das es wärend des Uploades einen
balken wie z.B http://www.podomedi.com/grafiken/Ladebalken.gif
Anzeigt, und soweit das Upload Fertig ist, soll es dan zu nächste seite weitergeleitet werden!

Wenn man z.B auf Rapidshare.de Etwas hochladed, gibt es auch einen balken.
Nur würd mich interessieren wie macht man das. :)
Es gibt unzählige themen in google doch alles ohne ende.
Ich konnte nichts rausholen was mir weiterhilft.


Edit: Folgende code Konnte ich durch rapidshare herausholen.
Code:
<html>
<Style>
body {
 font-family: Verdana;
 font-size: 12px;
}
table {
 font-family: Verdana;
 font-size: 12px;
}
</Style>
<body><br>
<div id="progress_block" name="progress_block" style="visibility:hidden">
<small>Uploadgeschwindigkeit: <b><span name="progress_kbpersec" id="progress_kbpersec">0</span> KB/Sek</b>,
<span name="progress_minutes" id="progress_minutes">0</span> Minuten übrig.<br><br></small>

<table border="0" cellpadding="0" cellspacing="5" style="border-bottom:1px solid grey">
<tr><td>
  <img src="http://images.rapidforum.com/rapidshare/folder_small.gif" width="20" height="20"><td width="550"><img src="http://images.rapidforum.com/rapidshare/bar8.gif" height="20" width="88%" name="progress_img" id="progress_img"></td><td>
  <img src="http://images.rapidforum.com/rapidshare/fahne_kl.gif" width="17" height="20"></td></tr></table><small>
<b><span name="progress_percent" id="progress_percent">0</span>%</b> (<span name="progress_recieved" id="progress_recieved">0</span> KB von <span name="progress_total" id="progress_total">0</span> KB)</small>

</div>

<div style="position: absolute; top: 5px; left: 100px; "id="progress_block_no" name="progress_block_no">
<big>Hoste deine Dateien KOSTENLOS bei RapidShare!<br>1. Datei ausw&auml;hlen und auf Upload klicken<br>2. Download-Link verteilen</font></big>
</div>

<script type="text/javascript" language="javascript">
var d=0;var a=false;function p(m,f){a=false;if(window.XMLHttpRequest){a=new XMLHttpRequest();if(a.overrideMimeType){a.overrideMimeType('text/xml');}}else if(window.ActiveXObject){try{a=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{a=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}if(!a){return false;}a.onreadystatechange=o;a.open('GET',m+f,true);a.send(null);}function o(){if(a.readyState==4){if(a.status==200){document.getElementById('progress_block_no').style.visibility="hidden";document.getElementById('progress_block').style.visibility="visible";var g=a.responseText;if(g.length>4){var b=g.split("#");var i=(b[4].replace(/%/,"")/100*550);q(d,i,4500);d=i;document.getElementById('progress_recieved').innerHTML=b[0];document.getElementById('progress_total').innerHTML=b[1];document.getElementById('progress_percent').innerHTML=b[4];document.getElementById('progress_kbpersec').innerHTML=b[2];document.getElementById('progress_minutes').innerHTML=b[3];}else{document.getElementById('progress_block_no').style.visibility="visible";document.getElementById('progress_block').style.visibility="hidden";}}else{}}}function q(j,l,h){var c=15;if(h<=c){document.getElementById('progress_img').width=l;}else{k=l-j;move=Math.round(k/h*c);if(move<1&&k>0){move==3;}e=j+move;document.getElementById('progress_img').width=e;setTimeout("q("+e+", "+l+", "+(h-c)+")",c);}}function r(){var n=new Date();p('/cgi-bin/uploadjs.cgi','?uploadid=365291513751156926&r='+n.getSeconds());setTimeout("r()",5000);}
r();
</script>
</body>
</html>
Wie Kann ich es einsetzen das ist jetzt die frage:(
 
Zuletzt bearbeitet:
Hi,

wenn der Ladebalken nicht wirklich den Fortschritt anzeigen, sondern sich nur bewegen soll, könntest Du vor dem Abschicken des Formulars mit JavaScript ein DIV einblenden, das ein entsprechendes animiertes GIF enthält. Ist der Upload abgeschlossen, wird die Seite sowieso neu an den Browser geschickt (und das div ist wieder unsichtbar), oder das Ziel des Formulars ist eine andere Seite:
HTML:
<script type="text/javascript">
function zeigeBalken() {
    document.getElementById("ladebalken").style.display = "block";
    return true;
}
</script>
<form action="upload.php" enctype="multipart/form-data" onsubmit="return zeigeBalken();">
  <input type="file" name="datei">
  <input type="submit" name="go" value="Hoch damit!">
</form>
<div id="ladebalken" style="display:none">
  <img src="balkenani.gif" alt="">
</div>
(sehr vereinfachter Code)

Gruß
.
 
Wenn man das ganze gut gliedert, sieht man eigentlich, wie das gemacht ist. Alles mit XMLHttpRequest
HTML:
<html>
<Style>
body {
 font-family: Verdana;
 font-size: 12px;
}
table {
 font-family: Verdana;
 font-size: 12px;
}
</Style>
<body>
<br>
<div id="progress_block" name="progress_block" style="visibility:hidden">
	<small>
	  Uploadgeschwindigkeit: <b><span name="progress_kbpersec" id="progress_kbpersec">0</span> KB/Sek</b>,
	  <span name="progress_minutes" id="progress_minutes">0</span> Minuten übrig.<br><br>
	</small>

	<table border="0" cellpadding="0" cellspacing="5" style="border-bottom:1px solid grey">
  	   <tr>
    	 <td>
      	   <img src="http://images.rapidforum.com/rapidshare/folder_small.gif" width="20" height="20">
      	 </td>
      	 <td width="550"><img src="http://images.rapidforum.com/rapidshare/bar8.gif" height="20" width="88%" name="progress_img" id="progress_img">
      	 </td>
      	 <td>
      	   <img src="http://images.rapidforum.com/rapidshare/fahne_kl.gif" width="17" height="20">
    	 </td>
  	   </tr>
	 </table>
	<small>
	  <b>
	    <span name="progress_percent" id="progress_percent">0</span>%
	  </b> 
	  (<span name="progress_recieved" id="progress_recieved">0</span> KB von 
	  <span name="progress_total" id="progress_total">0</span> KB)
    </small>
</div>

<div  id="progress_block_no" name="progress_block_no">
<big>Hoste deine Dateien KOSTENLOS bei RapidShare!<br>1. Datei ausw&auml;hlen und auf Upload klicken<br>2. Download-Link verteilen</font></big>
</div>

<script type="text/javascript" language="javascript">
var d=0;
var a=false;

function p(m,f)
{
  a=false;
  if(window.XMLHttpRequest)
  {
    a=new XMLHttpRequest();
    
    if(a.overrideMimeType)
    {
      a.overrideMimeType('text/xml');
    }
  }else if(window.ActiveXObject)
  {
    try
    {
      a=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        a=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {}
    }
  }
  
  if(!a)
  {
    return false;
  }
  
  a.onreadystatechange=o;
  a.open('GET',m+f,true);
  a.send(null);
}

function o()
{
  if(a.readyState==4)
  {
    if(a.status==200)
    {
      document.getElementById('progress_block_no').style.visibility="hidden";
      document.getElementById('progress_block').style.visibility="visible";
      var g=a.responseText;
      
      if(g.length>4)
      {
        var b=g.split("#");
        var i=(b[4].replace(/%/,"")/100*550);
        q(d,i,4500);
        d=i;
        document.getElementById('progress_recieved').innerHTML=b[0];
        document.getElementById('progress_total').innerHTML=b[1];
        document.getElementById('progress_percent').innerHTML=b[4];
        document.getElementById('progress_kbpersec').innerHTML=b[2];
        document.getElementById('progress_minutes').innerHTML=b[3];
      }
      else
      {
        document.getElementById('progress_block_no').style.visibility="visible";
        document.getElementById('progress_block').style.visibility="hidden";
      }
    }
    else
    {}
  }
}

function q(j,l,h)
{
  var c=15;
  if(h<=c)
  {
    document.getElementById('progress_img').width=l;
  }
  else
  {
    k=l-j;
    move=Math.round(k/h*c);
    
    if(move<1&&k>0)
    {
      move==3;
    }
    
    e=j+move;
    document.getElementById('progress_img').width=e;
    setTimeout("q("+e+", "+l+", "+(h-c)+")",c);
  }
}

function r()
{
  var n=new Date();
  p('/cgi-bin/uploadjs.cgi','?uploadid=365291513751156926&r='+n.getSeconds());
  setTimeout("r()",5000);
}
r();
</script>
</body>
</html>

Hier denke ich musst du dein Script angeben. Dann sollte es laufen. (steht in der funktion r)
HTML:
p('/cgi-bin/uploadjs.cgi','?uploadid=365291513751156926&r='+n.getSeconds());

Gruß fanste
 
@Tobias...
Das es ganz normal einen bild anzeigt, wäre ja auch ok, aber auch das tut er nicht.
Aber die idee onsubmit ist nicht schlecht, ich werd mal guggen was ich da noch so machen kann!
@fanste...
Ich habe 0,001% Ahnung von javascript :)))
Daher würd ich sagen das das schwierig wird, aber ich werds auch damit versuchen ;)
Danke
 
Ich habe jetzt folgendes gemacht.
Was ich auch Für einen Guten idee halte.
Code:
<script type="text/javascript">
function zeigeBalken() {
    document.getElementById("ladebalken").style.display = "block";
    return true;
}
</script>

<form action="upload.php" enctype="multipart/form-data" method="post" onsubmit="this.go.value='Bitte Warten...';this.go.disabled=true;return zeigeBalken();">
  <input type="file" name="Datei">
<input type="hidden" name="sender" value="sender">
  <input type="submit" name="go" value="Hoch Damit!">
</form>
<div id="ladebalken" style="display:none">
  <img src="balkenani.gif" alt="">

Das Button go wird auf Disable gesetzt und dort steht dan Bitte Warten..
Ich habe leider eins nicht hinbekommen, und das ist dieses balken.
ich habe es nicht angezeigt bekommen :-/
gibts da irgentwo ein fehler
 
Wie mir gerade so hübsch aufällt. Woher weis das Script denn, welche datei hochgeldaen werden soll? Wird auf der Seite irgendwo ersichtlich, wann diese datei aufgerufen wird?

Was ist damit:
HTML:
<script type="text/javascript">
function zeigeBalken() {
    document.getElementById("ladebalken").style.display = "inline";
    return true;
}
</script>

<form action="upload.php" enctype="multipart/form-data" method="post" onsubmit="this.go.value='Bitte Warten...';this.go.disabled=true;zeigeBalken();return true;">
  <input type="file" name="Datei">
<input type="hidden" name="sender" value="sender">
  <input type="submit" name="go" value="Hoch Damit!">
</form>
<div id="ladebalken" style="display:none">
  <img src="balkenani.gif" alt="">

Hast du überhaupt das Bild balkenani.gif in dem ordner, in dem auch diese Datei sich befindet?
 
Zurück