Autor Zpráva
BUTon
Profil
Ahoj všem, kteří tady ví víc než já (tedy asi všem),
coby PHPčkář amatér jsem se pustil do jednoduchého úkonu, který mi fungoval na webu, kde je PHP nižší verze a na novém s php5 mi neběží.

Na první stránce chci nahrát fotky (fotku a její náhled), použiju:
<form method="post" action="detaily_021.php" enctype="multipart/form-data">
Fotka: <br>
<input name="soubor1" type="file"> <br>&nbsp;<br>&nbsp;<br>
Náhled: <br>
<input name="soubor2" type="file"> <br>&nbsp;<br>&nbsp;<br>
<input type="submit" value="Nahrát" ><br>&nbsp;<br>

Na druhé chci pod ní vyplnit krátké popisky, nicméně fotka se mi nezobrazí. Fyzicky na FTP ji najdu, tipuji tedy jen na chybu v syntaxi, s kteroužto válčím dost a dost...
Používám:
<?php

if (is_uploaded_file($_FILES["soubor1"]["tmp_name"]))
{
$name = $_FILES["soubor1"]["name"];
$cesta = '../foto/' . $name;
if(move_uploaded_file($_FILES["soubor1"]["tmp_name"], $cesta))
{
echo '<img src="' . $cesta . '">';
$jmeno1=$name;
}
else
{
echo '<p>lituji soubor se nepodařilo přenést z dočasného adresáře...</p>';
}
}
else
{
echo '<p>lituji, soubor se nepodařilo přenést na server</p>';
}
?>

a totéž pro náhled...
Pokud na předchozí stránce žádné fotky nezadám, správně mi to vypíše tu větičku "Lituji..."

Jak říkám, na php4xy to běželo, na php5 ne :(

Předem díky za ochotu!!!

BUTon
DJ Miky
Profil
Podle mě bude chyba někde v tom zadávání cesty ../foto/jmeno - adresa skriptu může být odlišná od jeho fyzického umístění, můžou blbnout adresy. Jestli ale na FTP skutečně fotka je, zkus se na ní dostat přímým zadáním adresy, pokud se zobrazí, problém bude v cestě u <img>.
BUTon
Profil
Je to zvláštní, protože na FTP ji fyzicky najdu, podaří se mi ji stáhnout z FTP zpět na disk (tzn. tam fyzicky existuje), ale když na ni zkusím přímou cestu, tak je to 403 Forbidden...
DJ Miky
Profil
Nemáš zakázaný přístup v .htaccess nebo adresář není jinak zakázaný?

Blbne to jen na jedné fotce nebo na všech?
Peca
Profil
Špatně nastavená práva. Mrkni, co tam je, případně to zkusi změnit chmod-em.
BUTon
Profil
Jsme na dobré cestě... Když jsem na FTP (používám nějakej freeware, Faststream se to jmenuje) přehodil u fotky nahrané přes PHP práva u "Group o users" na "Read", tak se zobrazuje...
Fotky nahrané přes FTP mají toto právo ale už od začátku, otázka tedy zní, jak udělat, aby se fotky přes PHP nahrávaly i s tímhle právem...
DJ Miky
Profil
Funkcí chmod().
BUTon
Profil
V naději jsem zkusil:
<?php

if (is_uploaded_file($_FILES["soubor1"]["tmp_name"]))
{
$name = $_FILES["soubor1"]["name"];
$cesta = '../foto/' . $name;
if(move_uploaded_file($_FILES["soubor1"]["tmp_name"], $cesta))
{
chmod("$soubor1", 0777);
echo "$cesta";
$jmeno1=$name;
}
else
{
echo '<p>lituji soubor se nepodařilo přenést z dočasného adresáře...</p>';
}
}
else
{
echo '<p>lituji, soubor se nepodařilo přenést na server</p>';
}
?>

Nicméně stále neběhá... už to bude asi jen o tom, kam ten chmod prsknout, což ovšem já jako nePHPčkař nevím :(
HTML jsem zvládnul nastudovat samostudiem, ale PHP je vyšší škola, tam bych se potřeboval naučit nejdřív myslet :(
B.
DJ Miky
Profil
Umístil jsi to správně, jen to zřejmě máš se špatným parametrem - $soubor1 totiž neexistuje. Zkus to takto:
chmod($cesta, 0777);
BUTon
Profil
No vida, další krok :)
Tedy teď už se to zapisuje správně a na FTP jsou ta práva tak, jak si je určím, ale asi je pořád ještě chyba v té syntaxi, protože na té druhé stránce se mi ty fotky nezobrazí.
Když k nim vypíšu cestu přímo, tak už je to OK ;-)
DJ Miky
Profil
Tak je zřejmě chyba v cestě v <img> - buďto logicky podle umístění skriptu, obrázku a adresy zkoušet nastavit jiné cesty, nebo zadat absolutní cestu, to by myslím neměl být problém.
BUTon
Profil
DJ Miky, díky moc za čas, který jsi tomu věnoval! Takového poradce bych potřeboval mít v kapse :) (nebo na ICQ)
Už to funguje (problém byl už jen v tom, že jak jsem se v tom rejpal, byla ta syntaxe pokažená, ta stará samozřejmě pracuje ;-) ), jdu tedy vytvářet problémy o krok dál :)))

Ještě jednou díky MOC!
BUTon
Toto téma je uzamčeno. Odpověď nelze zaslat.

0