Autor | Zpráva | ||
---|---|---|---|
zdenek Profil |
#1 · Zasláno: 28. 3. 2011, 19:12:59
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 |
#2 · Zasláno: 28. 3. 2011, 19:25:44 · Upravil/a: ShiraNai7
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 |
#3 · Zasláno: 28. 3. 2011, 20:14:16
zdenek:
Nebude to tím, že proměnná $ok existuje pokaždé? Ověřuj pouze $_POST["ok"], nebo použij jinou funkci. |
||
ShiraNai7 Profil |
#4 · Zasláno: 28. 3. 2011, 22:24:46
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 |
#5 · Zasláno: 28. 3. 2011, 22:44:45 · Upravil/a: Davex
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 |
#6 · Zasláno: 29. 3. 2011, 07:51:44
Radek9:
$ok neexistuje pokaždé Davex: toto zkusím. |
||
zdenek Profil |
#7 · Zasláno: 31. 3. 2011, 16:59:59
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 |
#8 · Zasláno: 31. 3. 2011, 17:02:28 · Upravil/a: Keeehi
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 |
#9 · Zasláno: 31. 3. 2011, 17:05:23
Keeehi:
mám, ale nefunguje to. |
||
Keeehi Profil |
#10 · Zasláno: 31. 3. 2011, 17:23:52 · Upravil/a: Keeehi
<form method="post" enctype="multipart/form-data" action="soutez.php"> |
||
zdenek Profil |
#11 · Zasláno: 31. 3. 2011, 17:40:23
Keeehi:
pořád mi to vypisuje tu samou chybu. |
||
Keeehi Profil |
#12 · Zasláno: 31. 3. 2011, 17:51:34
Co vypíše
var_dump($_FILES); ?
|
||
zdenek Profil |
#13 · Zasláno: 31. 3. 2011, 18:00:59
Keeehi:
vypíše toto: array(0) { } |
||
Keeehi Profil |
#14 · Zasláno: 31. 3. 2011, 18:04:00
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 |
#15 · Zasláno: 31. 3. 2011, 18:06:35
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éno a příjmení 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 |
#16 · Zasláno: 31. 3. 2011, 18:14:30
zdenek:
na 2. řádku ti chybí mezera mezi jednotlivými atributy. |
||
zdenek Profil |
#17 · Zasláno: 31. 3. 2011, 18:17:54
panther:
stejně nic. |
||
panther Profil |
#18 · Zasláno: 31. 3. 2011, 18:21:43
zdenek:
a ještě koukám, od atributu target si slibuješ co? Myslíš asi action , ne?
|
||
zdenek Profil |
#19 · Zasláno: 31. 3. 2011, 18:23:20
panther:
i když to změním, tak nic |
||
Bertram Profil |
#20 · Zasláno: 31. 3. 2011, 20:53:33
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. |
||
Časová prodleva: 3 dny
|
|||
zdenek Profil |
#21 · Zasláno: 3. 4. 2011, 18:21:48
Bertram:
ale kam se zkopíruje po move_uploaded_file ten soubor? |
||
Bertram Profil |
#22 · Zasláno: 3. 4. 2011, 19:39:55
zdenek:
Do aktuálního adresáře, kde je uložený i soubor soutez.php |
||
zdenek Profil |
#23 · Zasláno: 3. 4. 2011, 19:44:42
Bertram:
tam se to právě nedalo |
||
Bertram Profil |
#24 · Zasláno: 3. 4. 2011, 20:04:10
A co vypsal ten dump?
|
||
zdenek Profil |
#25 · Zasláno: 3. 4. 2011, 20:07:53
nic. všechno to udělalo. jen potřebuju aby se to nahrálo do složky "uploads"
|
||
Bertram Profil |
#26 · Zasláno: 3. 4. 2011, 20:13:42
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 |
#27 · Zasláno: 3. 4. 2011, 21:10:42
Bertram:
tomu nerozumím. |
||
Bertram Profil |
#28 · Zasláno: 3. 4. 2011, 21:31:28
Pokud se má uložit o adresář výše do složky uploads.
move_uploaded_file($soubor,'../uploads/'.$soubor_name); |
||
zdenek Profil |
#29 · Zasláno: 3. 4. 2011, 21:49:01
Bertram:
díky |
||
Časová prodleva: 13 let
|
0