| Autor | Zpráva | ||
|---|---|---|---|
| Esonyx Profil * |
#1 · Zasláno: 16. 2. 2010, 18:30:38
Ahoj, řeším hromadný upload, ale bohužel mi nefunguje.
<form name=\"fotografie\" method=\"post\" action=\"\" enctype=\"image/jpeg\">
<input type=\"hidden\" name=\"odeslanyformular\" value=\"5\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" />
<input value=\"Uložit\" type=\"submit\">
</form>
if ($_POST["odeslanyformular"] == 5 && isset($_FILES)) {
$hlaseniuploadu.= "Byl odeslaný formulář uploadu.<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][0] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][1] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][2] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][3] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][4] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][5] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][6] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][7] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"]["name"][8] . "<br />";
$hlaseniuploadu.= $_FILES["fotka"][0]["name"] . "<br />";
$hlaseniuploadu.= $_FILES[0]["fotka"]["name"] . "<br />";Problém je v tom, že v proměnné $hlaseniuploadu je vždy jen "<br />". Nevadí že je na serveu vypnuté register_globals? Nebo mám chybu jinde? |
||
| Jake898 Profil |
#2 · Zasláno: 16. 2. 2010, 18:42:50
Máš prohozené klíče pole.
Správně by mělo být $_FILES["fotka"][0]["name"] A ten poslední je úplně přehozenej. |
||
| Esonyx Profil * |
#3 · Zasláno: 16. 2. 2010, 18:47:26
To jsem zkoušel na řádku 25. Přesto mi vyhodí pouze <BR />....
|
||
| Majkl578 Profil |
#4 · Zasláno: 16. 2. 2010, 18:52:38
co vypíše
var_dump($_FILES);?
|
||
| Esonyx Profil * |
#5 · Zasláno: 16. 2. 2010, 18:58:11
array(0) {
} známená to že neobsahuje pole? |
||
| Majkl578 Profil |
#6 · Zasláno: 16. 2. 2010, 19:04:05
Esonyx:
To znamená, že se na server nedostaly žádné soubory (nebo jsi to pole někde přemazal). |
||
| Esonyx Profil * |
#7 · Zasláno: 16. 2. 2010, 19:09:12
No přemazané není, php kod je téměř na začátku,
<?php
session_start();
ob_start();
// pokud doslo k uploadu tak zpracujeme data
if ($_POST["odeslanyformular"] == 5 && isset($_FILES)) {
var_dump($_FILES);
$hlaseniuploadu.= "Byl odeslaný formulář uploadu.<br />";
$hlaseniuploadu.= $_FILES['fotka']['name'][0] . "<br />";
....
Může být potíž v tom, že formulář se zobrazuje pomocí javascriptu? Formulář se mi zobrazí až po zavolání této fce: function disp_prompt()
{
var zobrazit= "<b onclick=\"disp_promptx()\">Zavřít fotografie <img src=\"upico.gif\" border=\"0\"></b><br />"+
"<form name=\"fotografie\" method=\"post\" action=\"\" enctype=\"image/jpeg\">"+
"<input type=\"hidden\" name=\"odeslanyformular\" value=\"5\" /><table><tr>"+
"<td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/><td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/></tr><tr><td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/><td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/></tr><tr><td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/><td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/></tr><tr><td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/><td align=\"center\" valign=\"center\" style=\"width:380px;height:20px;\">"+
"<input type=\"file\" accept=\"image/jpeg\" name=\"fotka[]\" /><td/></tr></table><input value=\"Uložit\" type=\"submit\"></form>"
document.getElementById("msg").innerHTML= zobrazit
}Nevím jestli by se tohle vláko nemělo přeřadit do javascriptu, hih :) |
||
| Majkl578 Profil |
#8 · Zasláno: 16. 2. 2010, 19:32:54
Teď mě napadá, není náhodou problém v tom, že atribut enctype formuláře by měl mít hodnotu "multipart/form-data"?
|
||
| Esonyx Profil * |
#9 · Zasláno: 16. 2. 2010, 19:44:22
Máš pravdu, už to funguje... To mě nenapadlo... Moc dík za pomoc :o)
|
||
| Lamicz Profil |
#10 · Zasláno: 16. 2. 2010, 22:55:56
Viz - Odkaz - Example #3
|
||
|
Časová prodleva: 5 měsíců
|
|||
| Skeletonek Profil * |
#11 · Zasláno: 25. 7. 2010, 14:41:41
Našel jsem na PHP tenhle kód a fungoval mi bezproblému, jen musíš vytvořit složku data , která musí mit "práva" na 777 pokud to nepůjde, tak musíš i ten soubor ve kterým máš ten zdrojak.
<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
}
}
?>
|
||
|
Časová prodleva: 15 let
|
|||
0