Autor Zpráva
kozusnik.jan
Profil *
Ahoj. Na web mi nejde nahrávat pomocí funkce COPY, tak jsem našel skript na nahrávání přes FTP. Ale, když vyberu soubor a zvolím nahrát, tak mi to napíše "Žádný soubor jste neuplodovali. Nevíte, co s tím?
Zdroják:
<form action="" method="post" name="nahrani" enctype="multipart/form-data">
<input type="file" name="soubor" id="soubor" />
<input type="submit" name="nahrat" value="Nahrej!"/>
</form>

if ($_POST["nahrat"] == true) {
	if (!file_exists($_FILES['soubor']['tmp_name'])) die ("Žádný soubor jste neuploadoval");

	$conn_id = ftp_connect('********');

	if (!$login_result = ftp_login($conn_id, '********', '******')) {
		die('Pripojeni k FTP serveru se nezdarilo');
	}

	$local_file = $_FILES['file']['tmp_name'];
	$remote_file = $_FILES['file']['name'];

	if (!ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) {
		die('Prenos souboru se nezdaril');
	} else {
		echo "Soubor <strong>".$_FILES['soubor']['name']."</strong> z Vaseho PC";
		echo " typu <strong>".$_FILES['soubor']['type']."</strong>";
		echo " o velikosti <strong>".$_FILES['soubor']['size']."</strong> bajtu";
		echo " byl na serveru ulozen pod docasnym nazevem <strong>".$_FILES['soubor']['tmp_name']."</strong>";
		echo " a nasledne zpracovan.<br /><br />";
	}

	ftp_close($conn_id);

}
holi
Profil
Myslím si, že ti to nebere hned první podmínku a to true, zkus si to dát přes isset nebo empty, dále ve formuláři nemusíč dávat prázný action, pokud ve formuláři není provádí se automaticky lokálně a nakonec pokud máš upload zabezpečený heslem nevím důvod místo postu využít GET.

<form method="post" name="nahrani" enctype="multipart/form-data">
<input type="file" name="soubor" id="soubor" />
<input type="submit" name="nahrat" value="Nahrej!"/>
</form>

if (!empty($_POST["nahrat"])) {
    if (!file_exists($_FILES['soubor']['tmp_name'])) die ("Žádný soubor jste neuploadoval");

    $conn_id = ftp_connect('********');

    if (!$login_result = ftp_login($conn_id, '********', '******')) {
        die('Pripojeni k FTP serveru se nezdarilo');
    }

    $local_file = $_FILES['file']['tmp_name'];
    $remote_file = $_FILES['file']['name'];

    if (!ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) {
        die('Prenos souboru se nezdaril');
    } else {
        echo "Soubor <strong>".$_FILES['soubor']['name']."</strong> z Vaseho PC";
        echo " typu <strong>".$_FILES['soubor']['type']."</strong>";
        echo " o velikosti <strong>".$_FILES['soubor']['size']."</strong> bajtu";
        echo " byl na serveru ulozen pod docasnym nazevem <strong>".$_FILES['soubor']['tmp_name']."</strong>";
        echo " a nasledne zpracovan.<br /><br />";
    }

    ftp_close($conn_id);

}

Pokud se pletu tak se omlouvám stímto způsobem uploadu moc zkušeností nemám.
NejakyTom
Profil
elegantnejsi reseni:
<?php
...
if (isset($_POST["nahrat"])){
...
kozusnik.jan
Profil *
Pořád mi to vypisuje, že jsem žádný soubor neuplodoval :-(. Nevím, co s tím udělat
kozusnik.jan
Profil *
Když to nahraji na web, tak mi to po stisknutí tlačítka pro nahrání souboru napíše, že se přenos nezdařil
NejakyTom
Profil
Tak to bude spise chyba nebo nevyhovujici nastaveni na hostingu.
Me script v pohode pusti dal k pripojeni na ftp.
kozusnik.jan
Profil *
Tak už to jede
Akorát nevím, jak to udělat, ať se mi soubory nahrávají do konkrétní složky. Mohli byste poradit?
holi
Profil
přoč vůbec nepoužiješ funkci move_uploaded_file() ?
NejakyTom
Profil
uprav promennou $remote_file
napr:
$remote_file = "/obrazky/".$_FILES['file']['name'];
holi
Profil
<?php
$cesta = "do/tramtarie";
}
//KONTROLA FORMÁTU
$kontrola = Array ('png', 'jpg', 'jpeg');
//ZJIŠTĚNÍ KONCOVKY
$path = PathInfo($_FILES['File']['name']);
//PODMINKA S POROVNANÍM KONCOVKY
if (!In_Array(StrToLower($path['extension']), $kontrola))
{
    echo "uploadovaný soubor není obrazek"
  exit;
}
//UPLOAD OBRÁZKU 
$Name = $_FILES['File']['name'];
Move_Uploaded_File($_FILES['File']['tmp_name'], "$cesta/$Name"); ?>
NejakyTom
Profil
no tady jde o ten FTP prenos
holi
Profil
Aha tak to jsem moc nepobral :D to se omlouvám.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0