Announcement

Collapse
No announcement yet.

Uploadliste per FTP

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Uploadliste per FTP

    Hallo,

    ich suche gerade verzweifelt eine Möglichkeit per FTP eine komplette Uploadliste abzuhandeln.

    Ich möchte auf einem lokalen Windows PC Dateien auf einen Linux Webserver per PHP/FTP hochladen. D.h. der User soll die Möglichkeit haben, mehrere Dateien auf der Festplatte auszuwählen.

    Bisher habe ich ein Formular entwicklelt, dass nach dem Absenden die Informationen in einer mySQL-Datenbank spichert.

    Hier das Formular:

    <pre>
    <?php < form action='index.php?mode=daten_neue&id_projekt=2' method='post' enctype='multipart/form-data'>
    <input type='file' name='datei'> Format: <input type='text' name='format' size='5' maxlength='20'> Version: <input type='text' name='version' size='3'> <input type='submit' name='Send' value='Hochladen'>
    </form> ?>
    </pre>

    Die Daten werden dann in einer Datenbank gespeichert:
    <pre>
    <?php $zielname=$_FILES['datei']['name'];
    $dateiname=$_FILES['datei']['tmp_name'];
    $sql_select="INSERT INTO $upload_liste (dateiname, zielname, id_projekt, autor, datum, format, version) VALUES ('$dateiname', '$zielname', '$id_projekt', '$autor', '$datum', '$format', '$version')";
    $result2 = mysql_query($sql_select);
    if ($result2)
    {
    echo "DATEN GESPEICHERT.<br><br><a href='index.php?mode=daten_liste&id_projekt=$id_pr ojekt'>Zur Upload-Liste</a> | <a href='index.php?mode=projektdaten_anzeige&id_proje kt=$id_projekt'>Zu den Projektdaten</a>";
    } else { print ("ERROR UPLOAD NEU " . mysql_errno($db) . "&nbsp;" . mysql_error($db)); }
    echo "</table>"; ?>
    </pre>

    Und dann hochgeladen
    <pre>
    <?php $sql_select="SELECT $upload_liste.* FROM $upload_liste";
    $result2 = mysql_query($sql_select);
    if ($result2)
    {
    echo "
    <p class='ueberschrift'>DATEN HOCHLADEN</p>
    <table cellpadding='2' cellspacing='1' border='0' width='100%'>
    <tr><td colspan='4' class='rahmen'>
    ";
    $VerbindungsID = ftp_connect($ftp_host);
    $LoginErgebnis = ftp_login($VerbindungsID, $ftp_user, $ftp_pass);
    if($VerbindungsID && $LoginErgebnis) { echo "<p>Mit Ftp verbunden: $ftp_host</p>"; }
    else
    {
    $fehler.="Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
    }

    if(ftp_pasv($VerbindungsID,$ftp_passive)) {
    } else {
    ftp_quit($VerbindungsID);
    $fehler.="Error PASV!!\n";
    }

    $ftppfad="/html/projektserver/daten/";
    if (ftp_chdir($VerbindungsID, $ftppfad)) {
    } else {
    ftp_quit($VerbindungsID);
    $fehler.="Error CHDIR!!\n";
    }
    </pre>
    <pre>
    $datenliste=ftp_rawlist ($VerbindungsID, "");
    print_r($datenliste);

    echo "</td></tr>
    <tr>
    <th width='40%'>Datei</th>
    <th>Format</th>
    <th>Version</th>
    <th>ERFOLG</th>
    </tr>
    ";
    </pre>
    <pre>
    while ($data=mysql_fetch_assoc($result2))
    {
    extract($data);
    $UploadErgebnis = ftp_put($VerbindungsID, $dateiname, $zielname, FTP_BINARY);
    echo "$UploadErgebnis = ftp_put($VerbindungsID, $zielname, $dateiname, FTP_BINARY);";
    if($UploadErgebnis)
    {
    $fehler.="Die Datei wurde hochgeladen!";
    }
    else
    {
    $fehler.="Die Datei konnte nicht hochgeladen werden.";
    }
    if ($f==1) { $bg="alt1"; } else { $bg="alt2"; }
    if ($f==2) { $f=0; }
    echo "
    <tr>
    <td class='$bg'>$dateiname</td>
    <td class='$bg'>$format</td>
    <td class='$bg'>$version</td>
    <td class='$bg'>$fehler</td>
    </tr>
    ";
    }
    } else { print ("ERROR UPLOAD LISTE " . mysql_errno($db) . "&nbsp;" . mysql_error($db)); }
    echo "<tr><td class='rahmen' colspan='4'>";
    ftp_quit($VerbindungsID);
    echo "</td></tr>";
    echo "</table>
    <br><br>
    "; ?>
    </pre>

    Ich habe die Vermutung, dass es daran liegt, dass die temporäre Datei auf dem Server gleich gelöscht wird, wenn Sie nicht direkt in ein Verzeichnis kopiert wird. Am liebsten wäre mir jedoch ein direkter FTP_Upload vom lokalen Rechner.

    Kann jemand helfen?
Working...
X