Diskuze: Upload na FTP

PHP PHP Upload na FTP American English version English version

Avatar
hypnozc
Člen
Avatar
hypnozc:

Ahoj, mam php kod, ktery z formulare vezme soubor a uploadne ho na FTP server... Jenze ted bych tento kod chtel rozsirit, aby uploadoval vice souboru naraz... Dosavadni kod vypada takto:

$ftp_server = "kocicka.endora.cz";
$ftp_user_name = "";
$ftp_user_pass = "";
$destination_file = "project-cars-mf.8u.cz/web/upload";
$name_file = $_FILES['file']['name'];
$source_file = $_FILES['file']['tmp_name'];

// set up basic connection
$conn_id = ftp_connect($ftp_server);
ftp_pasv($conn_id, true);

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

// upload the file
$upload = ftp_put($conn_id, $destination_file."/".$name_file, $source_file, FTP_BINARY);

// close the FTP stream
ftp_close($conn_id);

Poradi mi prosim nekdo, jak to upravit, aby to uploadovala vice souboru naraz?

Odpovědět 18.9.2015 11:54
Schopný programátor si štěrbinu vždy najde...
Avatar
Richard
Člen
Avatar
Odpovídá na hypnozc
Richard:
$upload = ftp_put($conn_id, $destination_file1."/".$name_file1, $source_file1, FTP_BINARY);
$upload = ftp_put($conn_id, $destination_file2."/".$name_file2, $source_file2, FTP_BINARY);
:-D

Ty soubory co chceš nahrávat nacpi do pole a pak ho projdi foreachem ve kterým bude ftp_put

Editováno 18.9.2015 12:07
Nahoru Odpovědět 18.9.2015 12:05
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
hypnozc
Člen
Avatar
Odpovídá na Richard
hypnozc:

Mohl by si mi to prosim nazorne ukazat na tom kodu nahore?

Nahoru Odpovědět 18.9.2015 12:07
Schopný programátor si štěrbinu vždy najde...
Avatar
Richard
Člen
Avatar
Odpovídá na hypnozc
Richard:

Klidně, jak budeš ty soubory posílat? Před jeden input=file s příznakem multiple nebo přes více inputů?

Nahoru Odpovědět  +1 18.9.2015 12:08
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
hypnozc
Člen
Avatar
Odpovídá na Richard
hypnozc:

Pres jeden s parametrem multiple :)

Nahoru Odpovědět 18.9.2015 12:11
Schopný programátor si štěrbinu vždy najde...
Avatar
Richard
Člen
Avatar
Richard:
<input name="fajl[]" type="file" multiple="" />

foreach ($_FILES['fajl'] as $file) {
        echo var_dump($file);
}
Editováno 18.9.2015 12:38
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 18.9.2015 12:38
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
hypnozc
Člen
Avatar
Odpovídá na Richard
hypnozc:

Asi sem natvrdlej, ale nechapu jak s tim pracovat, kam to do toho kodu vlozit :/ Muzes to zapsat do toho meho kodu nahore?

Nahoru Odpovědět 18.9.2015 12:48
Schopný programátor si štěrbinu vždy najde...
Avatar
hypnozc
Člen
Avatar
Odpovídá na Richard
hypnozc:

Takto by to neslo?

foreach ($_FILES['file'] as $file) {
  // upload the file
  $upload = ftp_put($conn_id, $destination_file."/".$file['name'], $file['tmp_name'], FTP_BINARY);
}
Nahoru Odpovědět 18.9.2015 13:04
Schopný programátor si štěrbinu vždy najde...
Avatar
hypnozc
Člen
Avatar
Odpovídá na Richard
hypnozc:

Tak to nefunguje... A nefunguje ani

foreach ($_FILES['file[]'] as $file) {
  $name_file = var_dump($file)['name'];
  $source_file = var_dump($file)['tmp_name'];
  // upload the file
  $upload = ftp_put($conn_id, $destination_file."/".$name_file, $source_file, FTP_BINARY);
}

Vazne si uz nevim rady :(

Nahoru Odpovědět 18.9.2015 13:21
Schopný programátor si štěrbinu vždy najde...
Avatar
Richard
Člen
Avatar
Odpovídá na hypnozc
Richard:

Vypiš si var_dump($file) před tím foreachem a podle toho to postav.

Nahoru Odpovědět 18.9.2015 13:28
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
hypnozc
Člen
Avatar
Odpovídá na Richard
hypnozc:

Nechapu... Jak si mam vypast var_dump($file)pred foreachem, kdyz ta promenna $file je az v tom foreachu?

Nahoru Odpovědět 18.9.2015 13:30
Schopný programátor si štěrbinu vždy najde...
Avatar
hypnozc
Člen
Avatar
Odpovídá na Richard
hypnozc:

Tak sem to udelal tak, jak umim...

for($i=0; $i < count($_FILES['file']);$i++){
  $name_file = $_FILES['file']['name'][$i];
  $source_file = $_FILES['file']['tmp_name'][$i];
  $upload = ftp_put($conn_id, $destination_file."/".$name_file, $source_file, FTP_BINARY);
}
Nahoru Odpovědět 18.9.2015 13:42
Schopný programátor si štěrbinu vždy najde...
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na hypnozc
TomasGlawaty:

Input má sice atribut name='file[]', ale projížděj ho jako:

foreach ($_FILES['file'] as $file)

Jinak hází to nějakou chybu ?

Editováno 18.9.2015 13:44
Nahoru Odpovědět 18.9.2015 13:43
Člověk může dosáhnout čeho si zamane. Jen musí chtít, případně něco obětovat ...
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 13 zpráv z 13.