Autor Zpráva
Milkys
Profil
Dobré skoro poledne,
mám níže uvedený kod, který neukládá fotky, ale vypisuje chybovou hlášku, přitom kontrolní echa jsou správně. Kde mám prosím chybu. Tento script je uložen jako se vytváří složka pro fotky t.j. http://moje.subdomena.cz/image/dalsi_slozka
Děkuji za odpověď.

$xml = simplexml_load_file("gal.xml");
$fotky = $xml->xpath("//url");
$cislo = 0;
   foreach ($fotky as $url) { //$url jsou adresy jednotlivých fotek
       if (!is_dir($hotId)) { 
       mkdir($hotId, 0777); //vytvořím složku s právama 777, $hotId je název složky - číslo
       }
       $nazev = $cislo++; //$nazev je nový název fotky od 0, např: 0.jpg, další bude 1.jpg ap.

$cil = "http://moje.subdomena.cz/image/dalsi_slozka/$hotId/$nazev.jpg"; //sem chci ukládat
$presun = move_uploaded_file ($url, $cil);
echo $nazev.'<br />';
echo $url.'<br />';
echo $cil.'<br />';
     //echo '<img style="margin:3px" src="' . $url .'" width="" height="200">';
     
}
if (!$presun) echo "Během přesunu došlo k chybě.";
Joker
Profil
Milkys:
Za prvé nikde v uvedeném kódu není definovaná proměnná $hotId.
Za druhé, proč je kontrola $presun až za cyklem, takže kontroluje jen přesun posledního souboru?
Za třetí, nevím o tom, že by HTTP uměl nahrávat soubory, cílová cesta má být cesta v rámci souborového systému.
Milkys
Profil
Joker:

1.) $hotId = 27864
2.) Zapomněl jsem kontrolu $presun vrátit do cyklu, i v cyklu to hlásí chyby.
3.) nefunguje to ani když $cil = "$hotId/$nazev.jpg";
Davex
Profil
Milkys:
vypisuje chybovou hlášku
Jakou? Máš zapnuté zobrazování chyb PHP?
ini_set('display_errors', 1);
error_reporting(E_ALL);

Nastavovat práva v mkdir() není spolehlivé. Použij ještě chmod().
Milkys
Profil
Davex:
Promiň Davexi, že jsem neodpověděl dříve (nejsem hulvát a Vážím si každé rady), ale zkoušel jsem tento problém vyřešit sám způsobem - udělat to jinak a nespoléhat se, že mi tu včas někdo poradí - a povedlo se. Celé jsem to udělal jinak. Možná složitěji (php se teprve učím), ale funguje to.
Děkuji za reakci.

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: