Autor Zpráva
Esonyx
Profil *
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
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 *
To jsem zkoušel na řádku 25. Přesto mi vyhodí pouze <BR />....
Majkl578
Profil
co vypíše var_dump($_FILES);?
Esonyx
Profil *
array(0) {
}

známená to že neobsahuje pole?
Majkl578
Profil
Esonyx:
To znamená, že se na server nedostaly žádné soubory (nebo jsi to pole někde přemazal).
Esonyx
Profil *
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
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 *
Máš pravdu, už to funguje... To mě nenapadlo... Moc dík za pomoc :o)
Lamicz
Profil
Viz - Odkaz - Example #3
Skeletonek
Profil *
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");
    }
}
?>

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: