jan
Aktives Mitglied
Thread Starter
- Dabei seit
- 03.06.2003
- Beiträge
- 1.908
- Reaktionspunkte
- 86
Moin,
ich bin gerade dabei, einen einfach Brennserver zu realisieren. Die Leute sollen in ein Verzeichnis ihren Krempel schmeißen können und dann per Web-Interface wahlweise eine CD oder DVD brennen. Das ganze läuft auf einer Debian-Maschine.
Das funktioniert soweit auch funktional bereits ganz gut, nur ists halt unschön, dass die php-Lösung es unmöglich macht, während der Ausführung einen gewissen Fortschritt rückzumelden. Meine Idee: Aus Größe des Images und Brenngeschwindigkeit die Dauer ermitteln und während der php-Befehl ausgeführt wird einen Countdown ausgeben. Nie 100% akkurat, aber immerhin etwas. Nur: Wie realisiere ich das?
Bisheriger Code:
und der eigentliche Befehl wäre:
Vielen Dank schonmal für die Hilfe!
ich bin gerade dabei, einen einfach Brennserver zu realisieren. Die Leute sollen in ein Verzeichnis ihren Krempel schmeißen können und dann per Web-Interface wahlweise eine CD oder DVD brennen. Das ganze läuft auf einer Debian-Maschine.
Das funktioniert soweit auch funktional bereits ganz gut, nur ists halt unschön, dass die php-Lösung es unmöglich macht, während der Ausführung einen gewissen Fortschritt rückzumelden. Meine Idee: Aus Größe des Images und Brenngeschwindigkeit die Dauer ermitteln und während der php-Befehl ausgeführt wird einen Countdown ausgeben. Nie 100% akkurat, aber immerhin etwas. Nur: Wie realisiere ich das?
Bisheriger Code:
PHP:
<?php
$size = shell_exec('du -s cd_image.iso');
$size = (int)$size;
$size = substr($size,0,7);
if ($size > 698000) {
echo "Verzeichnis zu groß, Inhalte löschen oder DVD brennen";
} else {
echo "Verzeichnis kann gebrannt werden </br>"; }
$output_size = $size / 1024;
$dauer_min = $size / 177 / 60;
$dauer_sek = floor($size / (177 * 24) );
echo "".$dauer_sek." Sekunden";
echo "$output_size MB";
?>
<script language="JavaScript">
var lngSekunden = <?php echo $dauer_sek; ?>;
function secondCount(){
// Stunden berechnen
intStunden = Math.floor(lngSekunden/(60*60));
// Stunden formatieren
intStunden = (intStunden < 10) ? "0"+intStunden : intStunden;
// Restsekunden berechnen
lngHelpSekunden = lngSekunden - intStunden*60*60;
// Minuten berechnen, formatieren und Restsekunden berechnen
intMinuten = Math.floor(lngHelpSekunden/60);
intMinuten = (intMinuten < 10) ? "0"+intMinuten : intMinuten;
intSekunden = lngHelpSekunden - intMinuten*60;
// Sekunden formatieren
intSekunden = (intSekunden < 10) ? "0"+intSekunden : intSekunden;
// Ausgabestring generieren
strZeit = intMinuten + ":" + intSekunden;
// Ausgabestring in DIV mit ID="countdownID" schreiben
document.getElementById("countdownID").innerHTML = strZeit;
// Sekunden dekrementieren
lngSekunden--;
// Falls der Countdown noch nicht zurückgezählt ist
if(lngSekunden >= 0)
// Countdown-Funktion erneut aufrufen
window.setTimeout("secondCount()", 1000);
}
</script>
<body onload="secondCount();">
<div id="countdownID"></div>
</body>
</body>
und der eigentliche Befehl wäre:
PHP:
<?php
shell_exec('mkisofs -U -J -R -f -o cd_image.iso /cd_brennen/ & cdrecord -eject dev=/dev/hdd cd_image.iso' );
?>
Vielen Dank schonmal für die Hilfe!