Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Onlineconverter selbstgemacht

Onlineconverter selbstgemacht

MikeMuc03.06.1419:30
Hallo zusammen,
ich habe ein Applescript welches aus einer Binärdatei eine Textdatei erstellt. Soweit so gut, es funktioniert. Nun möchte ich das ganze über eine Website machen. Die ist erstmal nur auf meinem eigenen Recher gehostet aber sollte auch auf in eine bestehende Website einfach eingebunden werden.

Bezüglich Websiteprogrammierung bin ich ein totaler Dau daher seit bitte gnädig
Ich stelle mir das so vor das die Seite eine "Uploadbutton" hat mit dem ich eine Datei auf meinem Rechner auswählen kann und sobald die Datei "hochgeladen" ist wird sie gleich "konvertiert". Dann sollte ich mit einem 2. Button einen Download anfordern können der mit die Originale und konvertierte Datei auf den Rechner lädt.

Das Applescript werd ich wohl in eine beliebige Programmiersprache bringen können, aber wo kriege ich ein Muster her für die Website. Kann mich mal jemand in die richtige Richtung schubsen?

Es geht um die Konvertierung einer Senderliste die in Binärform vorliegt und für die es leider nur einen Editor für Windows gibt. Eine systemunabhängige Konvertierung in eine lesbare Textdatei ist also das vorrangige Ziel. Später und wenn es Mitstreiter geben sollte dann könnte man die Website noch aufbohren und einen richtigen Editor draus machen...
0

Kommentare

MikeMuc08.06.1416:37
So, nachdem ich komplett ignoriert wurde habe ich mich nun selber durchgebissen

Eine Frage bleibt aber übrig: Wie kann ich einen Download einer Datei vom Server anstoßen?
Sprich wie bekomme ich meine temporäre (Text) Datei vom Server wieder zum User zurück ohne das ich nach der Konvertierung einen Downloadlink einblenden muß der dann erst noch geklickt werden muß.
0
HumpelDumpel
HumpelDumpel08.06.1416:56
Wie verarbeitest du denn den upload? php?
Ein bisschen mehr info brauchen wir schon...
0
MikeMuc08.06.1418:14
Ups, ja.
Meine super extravagante Website liegt in dieser Datei:
<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

und in "upload_file.php" steht das hier unter anderem drin:
<?php

....


$allowedExts = array("mst36", "mst40");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
$maxFileSize = 100000;    # maximale Dateigröße

if (      (($_FILES["file"]["type"] == "application/octet-stream"))
        && ($_FILES["file"]["size"] < $maxFileSize)
        && in_array($extension, $allowedExts)) {
    if ($_FILES["file"]["error"] > 0) {
        echo "Error: " . $_FILES["file"]["error"] . "<br>";
    } else {
        $filename = ($_FILES["file"]["tmp_name"]);
        #echo "Stored in:  $filename" . "<br>";
    }
} else {
    echo "Invalid file<br>";
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
}

$fileRefIn = fopen( $filename, "rb");

$fileVersion = bin2hex( fread( $fileRefIn, 2));
#echo "FileVersion:  " . $fileVersion . "<br>";

if ($fileVersion == "0603") {
    $fileVersion = 36;
    #echo "<br>Wir haben wirklich eine Datei mit der Version 36 bekommen.<br><br>";
} else {
    if ($fileVersion == "0004") {
        $fileVersion = 40;
        #echo "<br>Wir haben wirklich eine Datei in der Version 40 bekommen.<br><br>";
    } else {
        exit( "Binärkennung paßt nicht zur Dateiendung. Script wird beendet!");
    }
}


# Exportdatei erstellen
$file_name = "Senderliste.txt";
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename = "Senderliste.txt"');
#header("Content-Length: " . filesize( $file_name));

$exFile = tmpfile();
$fileRefEx = fopen( $exFile, "r");

# Header reinschreiben
fwrite( $fileRefEx, "Nr.\tName\tEPG\tCNI\tFrequenz\t\tCrypted\tPCR-ID\tAudio-PID\tTTX-ID\tVideo-PID\tNetwork-ID\tService-ID\tTransport-Stream-ID\tOrig-Network-ID\tSymbolrate\tModulation / Constellation\tPolarisation\tCode-Rate-HP\tGuard-Intervall\tTransmission-Mode\tVideformat\tAudioformat\n");


fclose($fileRefEx);

fclose( $fileRefIn);

?>


Lesen und parsen der hochgeladenen Datei funktioniert wunderbar. Inzwischen ist es mir auch gelungen eine Textdatei an "mich" zu schicken (bzw wird runter geladen). Nur steht anstatt der Headerinfo das hier drin:
<br />
<b>Warning</b>:  fopen() expects parameter 1 to be string, resource given in <b>/Volumes/Datenplatte/users/mslomski/Sites/PHP/upload_file.php</b> on line <b>435</b><br />
<br />
<b>Warning</b>:  fwrite() expects parameter 1 to be resource, boolean given in <b>/Volumes/Datenplatte/users/mslomski/Sites/PHP/upload_file.php</b> on line <b>438</b><br />
<br />
<b>Warning</b>:  fclose() expects parameter 1 to be resource, boolean given in <b>/Volumes/Datenplatte/users/mslomski/Sites/PHP/upload_file.php</b> on line <b>465</b><br />
0
MikeMuc08.06.1418:59
So, jetzt funktioniert auch der Rest

Alle Zeilen mit "ex drin gelöscht, unter dem Kommentar "Exportdatei erstellen" auch alle Headerzeilen löschen und hiermit ersetzen:
$filename = "Senderliste.txt";
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
header('Content-Transfer-Encoding: binary');


# Header reinschreiben
print( "Nr.\tName\tEPG\tCNI\tFrequenz\t\tCrypted\tPCR-ID\tAudio-PID\tTTX-ID\tVideo-PID\tNetwork-ID\tService-ID\tTransport-Stream-ID\tOrig-Network-ID\tSymbolrate\tModulation / Constellation\tPolarisation\tCode-Rate-HP\tGuard-Intervall\tTransmission-Mode\tVideformat\tAudioformat\n");

und die Ausgaben in die Datei dann einfach mit
print( "blah, blah");
schreiben.

Sicher alles nicht optimal aber es funktioniert
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.