Autor Zpráva
ONdra28
Profil *
Ahoj, zkouším přes fci ftp_get() dostat soubor z FTP.. a problém je asi ten, že moc dobře nechápu co zadat co 2. argumentu...tedy $local_file. Cestu v PC např. C:\... nebo něco jiného ?

Poraďte prosím.

<?php

$local_file = 'D:\moje galerka\close.gif';
$server_file = 'testik.jpg';

// set up basic connection
$ftp["username"] = "nejaky udaj";
$ftp["pass"] = "nejaky udaj";
$ftp["server"] = "nejaky udaj";
Extract($ftp);

$conn_id = ftp_connect($server);

// login with username and password
$login_result = ftp_login($conn_id, $username, $pass);

// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Soubor stáhnut";
} else {
    echo "Nějaká chyba";
}


ftp_close($conn_id);

?>
Majkl578
Profil
vzdyt je to v manualu:

local_file

The local file path (will be overwritten if the file already exists).
ONdra28
Profil *
Mi to píše tohle

Warning: ftp_get(D:\moje galerka\close.gif) [function.ftp-get]: failed to open stream: Permission denied in /home/free/ic.cz/s/spectrik/root/www/New2.php on line 18

Warning: ftp_get() [function.ftp-get]: Error opening D:\moje galerka\close.gif in /home/free/ic.cz/s/spectrik/root/www/New2.php on line 18
Nějaká chyba
AM_
Profil
Stačí si to přeložit, k souboru je odepřený přístup. Zřejmě je mimo povolené adresáře, kam může PHP přistupovat, nebo ho máš zrovna v něčem otevřený.
ONdra28
Profil *
To sem si sice přeložil, ale ať zadám jakoukoliv cestu tak to řve tu chybovou hlášku.
AM_
Profil
na jakém systému ti ten soubor běží? windows nebo linux? (nesnažíš se tohle nahrát někam na web a doufat, že při spuštění tohohle skriptu někde na webu se ti to stáhne do PC?)

mimochodem, řádky 7-10: jaký smysl má založit si asociativní pole, takhle ho naplnit hodnotami a hned extrahovat do hlavní tabulky proměnných? není lepší přiřazovat to přímo ($username="udaj")?
ONdra28
Profil *
(nesnažíš se tohle nahrát někam na web a doufat, že při spuštění tohohle skriptu někde na webu se ti to stáhne do PC

Jo přesně o to se snažím :) tak to je dobrej fail..
Já tady ty ftp fce moc neznám, chtěl jsem jen to jen vyzkoušet..takže takhle ne :-D

mimochodem, řádky 7-10: jaký smysl má založit si asociativní pole, takhle ho naplnit hodnotami a hned extrahovat do hlavní tabulky proměnných? není lepší přiřazovat to přímo ($username="udaj")?

Skript je stáhlej z webu, není můj
fopen
Profil *
Presne, druhy argument je klúčovy pre ftp prenos, svojho času som sa tým tiež zapodieval a dospel som k nasledujúcej funkcii:
	public function Download() {
		
		$downloadfile = strip_tags(urldecode($_GET['downloadfile']));
		$tempname = $this->FTPTemp.md5($downloadfile);
		
		if (@$fp = fopen($tempname, "w+")) {
			$this->Msg[] = 'File pointer ready.';
		
			if (@ftp_fget($this->FTPStream, $fp, $downloadfile, FTP_BINARY)) {

				header("Cache-Control: no-cache, must-revalidate");
				header("Pragma: no-cache");
				header("Content-Description: File Transfer");
				header("Content-Type: application/force-download");
				header("Content-Disposition: inline; filename=".$downloadfile."");
				header("Expires: 0");
				
				rewind($fp);
				fpassthru($fp);
				fclose($fp);
				
				if(@unlink($tempname)){
					$this->Msg[] = 'Clear FTP temp dir.';
				}
				
				exit;
				
			} else {
				$this->Msg[] = "Download failed.";
			}
			
		} else {
			$this->Msg[] = 'File pointer failed.';
		}
	}
ONdra28
Profil *
fopen

Dík, určitě se na to podívám.
AM_
Profil
fopen

jen poznámka, napsal jsi to jako metodu a ne funkci, takže buď bude ONdra28 potřebovat celou třídu, nebo si to bude muset dost překopat (je tam dost referencí na $this)
fopen
Profil *
AM_
maš pravdu, je to metoda, dal som ju len ako priklad (funkčný) a verím že to ONdra28 zvládne, môžem len poradiť že $this->Msg[]= sa da nahradit echom a potom už ostavaju iba $this->FTPTemp, $this->FTPStream, tie sa daju nahradiť konkretnými premennými...

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0