IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Kopírování souboru

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
gorri
Člen
Avatar
gorri:27.3.2019 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.3.2019 11:24
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
gorri
Člen
Avatar
gorri:27.3.2019 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.3.2019 11:40
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:27.3.2019 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.3.2019 12:41
 
Nahoru Odpovědět
27.3.2019 12:41
Avatar
gorri
Člen
Avatar
Odpovídá na Peter Mlich
gorri:27.3.2019 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.3.2019 14:07
Nahoru Odpovědět
27.3.2019 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.