PHP týden Letní akce
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

Diskuze: Kopírování souboru

Aktivity (2)
Avatar
gorri
Člen
Avatar
gorri:27. března 11:24

Ahoj všem zkušenějším.
Zkouším zkopírovat soubor na jinou doménu (FTP přístup mám) ale z nějakého důvodu se mi to nedaří. Nějak už nevím, kde by mohla být chyba. Díval jsem se i tady a mělo by to fungovat. Kouknul by prosím někdo a nakopnul mě prosím správným směrem? Děkuji moc :-)

$server = Db::querySingle('SELECT server FROM web WHERE url=?', $_SESSION['url']);
$conn = ftp_connect(server) or die("Není možné se připojit k $server");
$login = ftp_login($conn, Db::querySingle('SELECT uzivatel FROM web WHERE url=?', $_SESSION['url']), Db::querySingle('SELECT heslo FROM web WHERE url=?', $_SESSION['url']));

$file = "soubor.php";


if (ftp_put($conn, "../absolutnicestaksouboru/", $file, FTP_ASCII))
  {
  echo '<script>';
echo 'alert("Soubor úspěšně nahrán.")';
echo '</script>';
  }
else
  {
  echo "<alert>Soubor se nepodařilo nahrát $file</alert>";
  }

Děkuji případně za trpělivost :-)

Zkusil jsem: Google, ITnetwork, php.net

Chci docílit: Ahoj všem zkušenějším.
Zkouším zkopírovat soubor na jinou doménu (FTP přístup mám) ale z nějakého důvodu se mi to nedaří. Nějak už nevím, kde by mohla být chyba. Díval jsem se i tady a mělo by to fungovat. Kouknul by prosím někdo a nakopnul mě prosím správným směrem? Děkuji moc :-)

$server = Db::querySingle('SELECT server FROM web WHERE url=?', $_SESSION['url']);
$conn = ftp_connect(server) or die("Není možné se připojit k $server");
$login = ftp_login($conn, Db::querySingle('SELECT uzivatel FROM web WHERE url=?', $_SESSION['url']), Db::querySingle('SELECT heslo FROM web WHERE url=?', $_SESSION['url']));

$file = "soubor.php";


if (ftp_put($conn, "../absolutnicestaksouboru/", $file, FTP_ASCII))
  {
  echo '<script>';
echo 'alert("Soubor úspěšně nahrán.")';
echo '</script>';
  }
else
  {
  echo "<alert>Soubor se nepodařilo nahrát $file</alert>";
  }

Děkuji případně za trpělivost :-)

Odpovědět 27. března 11:24
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
gorri
Člen
Avatar
gorri:27. března 11:40

Tak už jsem na to přišel. Případně řešení je tady

$server = Db::querySingle('SELECT server FROM web WHERE url=?', $_SESSION['url']);
$conn = ftp_connect($server) or die("Není možné se připojit k $server");
$login = ftp_login($conn, Db::querySingle('SELECT uzivatel FROM web WHERE url=?', $_SESSION['url']), Db::querySingle('SELECT heslo FROM web WHERE url=?', $_SESSION['url']));

$file = "cesta k souboru";
// upload file
if (ftp_put($conn, "kamsemasoubornahrat(domena)/nazevsouboru", $file, FTP_ASCII))
  {
  echo '<script>';
echo 'alert("Soubor úspěšně nahrán.")';
echo '</script>';
}
Nahoru Odpovědět 27. března 11:40
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:27. března 12:41

A taky muzes rici, v cem byl problem. Tusim, ze jsi zadal spatne cesty. Ale, tak ono to neni z dokumentace take prilis jasne

php.net/ftp_put
<?php
$path_from = 'somefile.txt';
$path_to   = 'readme.txt';
// conn open
$ftp_conn     = ftp_connect($ftp_server);
$login_result = ftp_login($ftp_conn, $ftp_user_name, $ftp_user_pass); // login
// upload a file
if (ftp_put($ftp_conn, $path_to, $path_from, FTP_ASCII)) {
 echo "successfully uploaded $path_from\n";
} else {
 echo "There was a problem while uploading $path_from\n";
}
// connection close
ftp_close(ftp_conn);
?>

Pripadne by slo overit si existenci souboru file_exists($pat­h_from) nez otevres zbytecne ftp pripojeni.

Editováno 27. března 12:41
 
Nahoru Odpovědět 27. března 12:41
Avatar
gorri
Člen
Avatar
Odpovídá na Peter Mlich
gorri:27. března 14:04

Omlouvám se. Řádek 7 (v ukázce). Měl jsem špatně definovanou cestu kam se má soubor nahrát.

if (ftp_put($conn, "domena.cz/nazevsouboru", $file, FTP_ASCII))

Napsal jsem tam jen název souboru. Nějak mě to nenapadlo.
Jinak díky za poznámku. Ověřit jestli je soubor na serveru by nebyl špatný nápad. V mém případě vím, že tam není na 100%, takže nepotřebuji. Ale když někdo bude chtít, tak si to tam může dopsat.

Editováno 27. března 14:07
Nahoru Odpovědět 27. března 14:04
Když vím, tak poradím. Nikdo neví všechno :-)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.