|
|
|
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 |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
|
<?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
Zurück zur Übersicht
Autor realyreal22
|
|
|
|