Hey mensjes. ^^
Ik probeer met PHP een bestand te uploaden via FTP, hier heb ik een functie voor gevonden op zend.com, dit functioneert als ik een hard bestand upload, dus duidelijk bij het aanroepen van de class/functie aangeef dat het bestand 'daar' staat.
Nu wil ik dit dynamisch hebben, dus dat je via een formulier upload (multipart/form-data), maar telkens krijg ik de meldign dat het bestand niet gevonden kan worden. Als ik vervolgens het bestand plaats in de map waar ik de class en het php bestand heb staan werkt het wel, maar dat is natuurlijk niet echt de bedoeling. ^^
Heb ook al verschillende methoden geprobeert via $_FILES, maar dit leverde ook geen goed resultaat op. Als ik $_FILES['bestand']['name'] vraag, dan krijg ik alleen het bestandsnaam, en via de andere geprobeerdemethoden ook. Weet iemand wat ik fout doe, of is het gewoon niet mogelijk dit te doen? (Wat me overigens erg sterk lijkt)
class.phpftp.php
Ik probeer met PHP een bestand te uploaden via FTP, hier heb ik een functie voor gevonden op zend.com, dit functioneert als ik een hard bestand upload, dus duidelijk bij het aanroepen van de class/functie aangeef dat het bestand 'daar' staat.
Nu wil ik dit dynamisch hebben, dus dat je via een formulier upload (multipart/form-data), maar telkens krijg ik de meldign dat het bestand niet gevonden kan worden. Als ik vervolgens het bestand plaats in de map waar ik de class en het php bestand heb staan werkt het wel, maar dat is natuurlijk niet echt de bedoeling. ^^
Heb ook al verschillende methoden geprobeert via $_FILES, maar dit leverde ook geen goed resultaat op. Als ik $_FILES['bestand']['name'] vraag, dan krijg ik alleen het bestandsnaam, en via de andere geprobeerdemethoden ook. Weet iemand wat ik fout doe, of is het gewoon niet mogelijk dit te doen? (Wat me overigens erg sterk lijkt)
class.phpftp.php
index.phpclass php_ftp {
public $server = '';
public $usernam = '';
public $password = '';
public $port = 21;
public $remote_dir = '';
function php_ftp($server, $username='anonymous', $password='e@mail.com', $port=21) {
$this->server = $server;
$this->usernam = $username;
$this->password = $password;
$this->port = $port;
}
function send($filename='', $save_as='', $passive=TRUE) {
$conn = $this->return_connection() or die;
@ftp_pasv($conn, $passive);
$this->set_remote_dir(ftp_pwd($conn));
if(!ftp_put($conn, $save_as, $filename, FTP_BINARY)) {
@ftp_put($this->conn);
return false;
} else {
@ftp_put($this->conn);
return true;
}
return true;
}
function get($filename='', $save_as='', $passive=TRUE) {
$conn = $this->return_connection() or die;
@ftp_pasv($conn, $passive);
$this->set_remote_dir(ftp_pwd($conn));
if(!ftp_get($conn, $save_as, $this->remote_dir.$filename, FTP_BINARY)) {
@ftp_quit($this->conn);
return false;
} else {
@ftp_quit($this->conn);
return true;
}
}
function kill() {
if($this->conn) {
$this->disconnect();
}
unset($this);
}
function return_connection() {
$conn_id = @ftp_connect($this->server, $this->port) or die ("Kan geen verbinding maken met de FTP server.");
$login_result = @ftp_login($conn_id, $this->usernam, $this->password) or die ("Kan niet inloggen.");
return $conn_id;
}
function set_remote_dir($dir) {
$x = substr($dir, (strlen($dir)-1));
if($x != "/" && $x != "\\") {
$dir .= "/";
}
$this->remote_dir = $dir;
}
}
require_once('class.phpftp.php');
if($_POST) {
$bestand = basename($_FILES['bestand']['name']);
$doel = $_POST['doel'];
$naam = $_POST['naam'];
$ftp = new php_ftp('127.0.0.1', 'psyed', 'kelvin');
$ftp->send($bestand, $naam) or die ("Bla");
$ftp->kill();
} else {
$echo = <<<EOHTML
<form method="post" action="index.php" enctype="multipart/form-data">
Bestand <input type="file" name="bestand"><br>
Doel <input type="text" name="doel"><br>
Naam <input type="text" name="naam"><br>
<input type="submit" value="Test!">
</form>
EOHTML;
print $echo;
}