PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Forum

Codeschnipsel

File Transfering(FTP!)

Zurück zur Übersicht
Umgang mit der FTP Funktionalität von PHP.

Achtung, diese Funktion könnt ihr nur anwenden wenn ihr FTP bei PHP aktiviert habt.

Das Script ist leicht zu verstehen und auch leicht anzuwenden.
Als erstes ändert ihr die FTP Daten(Zeile 11-13)

Dann könnt ihr die Datei hochladen und ihr müsst sie so aufrufen um eine Datei herunterzuladen:

download.php?sid=DATEINAME.ENDUNG

Das war's.


<?php

 
/*********************
  FILE Transfer
  by DRS Live
 **********************/
 /***********
  BITTE EDITIEREN
 ***********/ 
$host = ''; // FTP Hostname
$user = ''; // FTP username
$password = ''; // FTP passwort
/*************************
     ENDE 
************/

// EXCEPTIONS
class fileOpenException extends Exception // Andere
{
    function 
__toString()
    {
        return 
'fileOpenException ' . $this->getCode()
         . 
': ' . $this->getMessage() . '<br />' . ' in der Datei '
         
. $this->getFile() . ' in Zeile ' . $this->getLine()
         . 
'<br />';
    }
}

class 
fileWriteException extends Exception // geschützte Dateien
{
    function 
__toString()
    {
        return 
'fileWriteException ' . $this->getCode()
         . 
': ' . $this->getMessage() . '<br />' . ' in der Datei '
         
. $this->getFile() . ' in Zeile ' . $this->getLine()
         . 
'<br />';
    }
}

class 
fileLockException extends Exception // gesperrte Dateien
{
    function 
__toString()
    {
        return 
'fileLockException ' . $this->getCode()
         . 
': ' . $this->getMessage() . '<br />' . ' in der Datei '
         
. $this->getFile() . ' in Zeile ' . $this->getLine()
         . 
'<br />';
    }
}
 @
$sid = trim($_GET['sid']); // get variabel
 
@$sid = htmlspecialchars($sid); // in htmlspecialchars nocheinmal
 
 
if(defined(ERROR))
 {
 print(
ERROR);
 exit;
 } 
// Error anzeigen

//Host verbinden
$conn = ftp_connect($host) or die('Sie haben wohl diese Funktion(ftp_connect) nicht auf dem Webserver installiert...'); // Schließe Verbindung
if(!$conn) // Wenn Verbindung scheitert
{
define(ERROR, '<b>Fehler:</b> Konnte keine Serververbindung herstellen.<br />');
exit;
}

//Host anmelden
$result = @ftp_login($conn, $user, $password);
if(!
$result) // Bei Fehlern an der Anmeldung
{ 
define(ERROR, '<b>Fehler:</b> Anmeldung als $user nicht möglich.<br />');
ftp_quit($conn); // Schließe Verbindung
exit;
}

 if(isset(
$sid)) {
  try {
    if (!(
$fp = @fopen("$sid", 'ab'))) // Öffne Datei
        
throw new fileOpenException(); // Prüft ob man Datei öffnen kann

    
if (!flock($fp, LOCK_EX))
        throw new 
fileLockException(); // Prüft ob Datei gesperrt ist

    
if (!fwrite($fp, $outputstring, strlen($outputstring)))
        throw new 
fileWriteException(); // Prüft ob Datei Schreibgeschützt ist
                                        // Falls man nicht möchte, dass andere
                                        // Das herunterladenflock
    
fclose($fp); // Schließe Datei
     
     
$fp = fopen($sid, 'w'); // Öffne Datei für den Download
     
if(!$success = ftp_get($conn, $p, $sid, FTP_BINARY)) { // Falls es Probleme bei Download gab
     
define(ERROR, '<b>Fehler:</b> Datei konnte nicht heruntergeladen werden.');
     
ftp_quit($conn); // Schließe Verbindung
     
exit;
     }
     
fclose($fp); // Schließe Datei
     
     
}
// Exceptions anzeigen
catch (fileOpenException $foe) {
    echo 
'<b>Die Datei konnte nicht geöffnet werden.  '
     
. 'Benachrichtigen Sie bitte den Webmaster.</b>';
} 
catch (
Exception $e) {
    echo 
'<b>Leider können wir ihren Download zurzeit nicht bearbeiten.  '
     
. 'Bitte versuchen Sie es später noch einmal.</b>';
}
 }
 else
 {
 
define(ERROR, 'Keine Datei wurde angegeben.'); // Falls keine Datei angegeben wurde
 
}

?>




Kommentare

Autor realyreal22

Zurück zur Übersicht
Autor: Nils Reimers
Zurück: URLs im Text identifizieren

Für Fortgeschrittene

  • Objektorientierte Programmierung
  • PHP Sicherheit
  • Script-Beispiele
  • Codeschnipsel
  • Stellenmarkt
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur
  • CasinoAndy Finland
  • Casinoohnelizenz.info
  • Cryptocasinomaster.com
  • CasinoHEX.at
  • inkedin.com

Hoster – Geringste Ausfallzeit

  1. webgo Ø 1 Min.
  2. Linevast Ø 2 Min.
  3. netcup Ø 3 Min.
  4. All-Inkl.com Ø 6 Min.
  5. checkdomain Ø 8 Min.
  6. dogado Ø 17 Min.
  7. bplaced Ø 17 Min.
  8. Contabo Ø 25 Min.
  9. Hetzner Ø 49 Min.
  10. ONE.com Ø 62 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2023

Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Anbieter verwalten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}