Autor Zpráva
zdenek
Profil
ahoj,, mám kód:


$ok = $_POST[ok];

			if (isset($ok)) {

				$soubor_name = $_FILES["soubor"]["name"];
				$soubor = $_FILES["soubor"]["tmp_name"];
				$path = "./uploads/$soubor_name";
				if (move_uploaded_file($soubor, $path))
				{
					chmod ($path, 0644);
					echo "<b>Fotka $soubor_name byla úspěšně nahrána na server.</b><BR>";
					
					
				}
				
				else {
				
				echo "<h3>Fotku se nepodarilo nahrat</h3>";
				
				}	
					
					
					


a po spuštění to vypíše "Fotku se nepodarilo nahrat"

jakto? předem díky
ShiraNai7
Profil
Zapni si zobrazování chyb. Toto vlož nějak na začátek souboru.
error_reporting(E_ALL);


A místo tohoto:
$ok = $_POST[ok];


Piš toto:
$ok = $_POST['ok'];
Radek9
Profil
zdenek:
Nebude to tím, že proměnná $ok existuje pokaždé? Ověřuj pouze $_POST["ok"], nebo použij jinou funkci.
ShiraNai7
Profil
Radek9:
To ne.. sice je to špatně, ale pokud není definováno $_POST['ok'] tak $_POST[ok] je taky null. Ale při zapnutém hlášení chyb by to řvalo.
Davex
Profil
zdenek:
Není nějaká chyba ve $_FILES['soubor']['error']?

ShiraNai7:
Ale při zapnutém hlášení chyb by to řvalo.
To není tak jisté. Na serveru může být vypnuté display_errors.
zdenek
Profil
Radek9:

$ok neexistuje pokaždé

Davex:

toto zkusím.
zdenek
Profil
když dám:

error_reporting(E_ALL);

tak ni to zobrazí:

Notice: Undefined index: soubor in /var/www/migrace/potapecskatechnikapichacom/www/soutez.php on line 136

Notice: Undefined index: soubor in /var/www/migrace/potapecskatechnikapichacom/www/soutez.php on line 137
Fotku se nepodarilo nahrat


na řádku 136:

	$soubor_name = $_FILES["soubor"]["name"];


a na řádku 137 je toto:

$soubor = $_FILES["soubor"]["tmp_name"];


kde je chyba?
Keeehi
Profil
Máš to takto?
<input type="file" name="soubor">

<input type="file" name="xxx"> se totiž musí shodovat s $soubor = $_FILES["xxx"]["tmp_name"];
zdenek
Profil
Keeehi:

mám, ale nefunguje to.
Keeehi
Profil
<form method="post" enctype="multipart/form-data" action="soutez.php">
Máš?
zdenek
Profil
Keeehi:


pořád mi to vypisuje tu samou chybu.
Keeehi
Profil
Co vypíše var_dump($_FILES);?
zdenek
Profil
Keeehi:
vypíše toto:


array(0) { } 
Keeehi
Profil
zdenek:
To znamená, že se soubor na server prostě nedostal. Chyba bude nejspíše někde v html ve formuláři. Když nám ho ukážeš, můžeme se ti na něj podívat.
zdenek
Profil
Keeehi:

tady je ten formulář:

<table border="0" width="600%">
<form method="POST"enctype="multipart/form-data" target="soutez.php?action=save">

<tr><td><label for="soubor">Vyberte fotku:</label></td><td><input type=file name="soubor"></td></tr>
<tr><td><label for="autor">Zadejte jm&eacute;no a př&iacute;jmen&iacute; autora:</label></td><td><input type=text name=autor></td></tr>
<tr><td><label for="email">Zadejte e-mail autora:</label></td><td><input type=text name=email></td></tr>
<tr><td><label for="popis">Zadejte popis fotografie:</label></td></tr><tr><td><textarea name="popis">

</textarea></td></tr>
<tr><td><input align="center" type="submit" name="ok" value=Odeslat></td></TR>
</form>
</table>
panther
Profil
zdenek:
na 2. řádku ti chybí mezera mezi jednotlivými atributy.
zdenek
Profil
panther:

stejně nic.
panther
Profil
zdenek:
a ještě koukám, od atributu target si slibuješ co? Myslíš asi action, ne?
zdenek
Profil
panther:

i když to změním, tak nic
Bertram
Profil
Po posledních dvou zmenách od panther napiš na začátek souboru soutez.php
toto:
$soubor_name = $_FILES["soubor"]["name"];
$soubor = $_FILES["soubor"]["tmp_name"];
move_uploaded_file($soubor, $soubor_name);
var_dump ($_FILES);
echo "<img src=\"$soubor_name\">";
exit;

A podle mého se výsledek ukáže.
zdenek
Profil
Bertram:

ale kam se zkopíruje po move_uploaded_file ten soubor?
Bertram
Profil
zdenek:
Do aktuálního adresáře, kde je uložený i soubor soutez.php
zdenek
Profil
Bertram:

tam se to právě nedalo
Bertram
Profil
A co vypsal ten dump?
zdenek
Profil
nic. všechno to udělalo. jen potřebuju aby se to nahrálo do složky "uploads"
Bertram
Profil
Teď možná trochu nechápu, takže to už funguje podle tvých představ až na místo uložení?
Pokud ano tak jako druhý parametr funkce move_uploaded_file bude relativní cesta k adresáři a název souboru.
zdenek
Profil
Bertram:

tomu nerozumím.
Bertram
Profil
Pokud se má uložit o adresář výše do složky uploads.

move_uploaded_file($soubor,'../uploads/'.$soubor_name);
zdenek
Profil
Bertram:

díky

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: