Adatfeltöltés: sikertelen képfeltöltés..
Sziasztok! Admin oldalra csinálok adatfeltöltést, és képet is szeretnék átméretezéssel beletenni. Olvastam pár dolgot erről itt a weblaboron, és máshol (pl.: http://www.php-blog.hu/php-magyar-kezikonyv/ref.image.html ), és imageresampleddel() méretezném át (jobb képminőség miatt), és tölteném fel/másolnám a képet (majd a bélyegképet, de azt még nem írtam meg, előbb ez működjön..). Az a baj hogy, teljesen rossz helyre rakja, vagy csak a fekete színű üres képet rakja, vagy jó helyre pakolja csak resurce # id7 nevet ad neki kit. nélkül, és még sorolhatnám balszerencsés próbálkozásaimat.Kérlek segítsetek, mert már kezdek belekavarodni, pedig elvileg egyszerű..
Most ez a kód:
■ Most ez a kód:
include ('mysql.php');
function uj_esemeny () {
if(isset($_POST["uj_esemeny"])) {
$nev = $_POST["nev"];
$ajanlo = $_POST["ajanlo"];
$info = $_POST["info"];
$helyszin = $_POST["helyszin"];
$jegyar = $_POST["nev"];
$datum = date("Y:m:d");
$eredeti_kep = basename($_FILES['kep']['name']);
$szeles = "800";
$magas = "800";
$cel = "../elemek/kepek/";
$cel2 = "../elemek/belyeg/";
$slq = "INSERT INTO hunprog (nev, ajanlo, info, helyszin, jegyar, kep, datum) VALUES ('$nev', '$ajanlo', '$info', '$helyszin', '$jegyar', '$eredeti_kep', '$datum')";
$ok = mysql_query($slq);
list($rszeles, $rmagas) = getimagesize($eredeti_kep);
$eredeti_arany = $rszeles/$rmagas;
if ($szeles/$magas > $eredeti_arany) {
$szeles = $magas*$eredeti_arany;
} else {
$magas = $szeles/$eredeti_arany;
}
$uj_kep = imagecreatetruecolor($szeles,$magas);
$fel_kep = imagecreatefromjpeg($eredeti_kep);
imagecopyresampled($uj_kep,$fel_kep,0,0,0,0,$szeles,$magas,$rszeles,$rmagas);
imagejpeg($uj_kep,null,100);
$cel = $cel . $uj_kep;
/* $cel2 = $cel2 . $belyeg; */
move_uploaded_file($_FILES['kep']['tmp_name'],$cel);
if($ok){
header('location:aktualis.php?sfel');
} else {
header('location:uj_esemeny.php?nemfel');
} }
}
Kis lépés...
http://php.net/manual/en/function.imagejpeg.php
imagejpeg ( resource $image [, string $filename [, int $quality ]] );
esetleg
Köszi. Kipróbálom. :-)
Bocs a lassúságért, de nem napközben nem mindig vagyok netközelben.
Az a kódrészlet, arra van ha, kisebb a feltöltött kép mint amit szeretnék akkor az új kép mérete ne változzon, mert a kisebb méret is jó (ezt egy barátomtól kaptam anno.).
Meg azon, próbálkozok hogy mondjuk, van egy, 600*800-as plakát akkor az ne legyen 800*600-ra széthúzva mert az hülyén fest.
Nem megy...
A probléma fent áll még mindig. Kivettem azt a kódrészletet (amire rákérdeztél) és kipróbáltam kódot amit adtatok, a többi változatlan. Eredmény.
Adatbázisban jó fájlnév. Minden esetben berak egy Resource id #7 -nevű kiterjesztés nélküli fájlt a megfelelő helyre (..elemek/kepek) és ennyi.
Magyarul megcsinálja az új üres fájlt (képet) a megadott helyre, csak nem rakja össze a feltöltött képpel..
Jó párszor végignéztem a kódot, összehasonlítottam a manuallal, és nem tudom hol a hiba. (Kihagytam vhol 1 vesszőt, és nem veszem észre????)
Emiatt
(PHP 4 >= 4.0.6, PHP 5)
imagecreatetruecolor -- Create a new true color image
Leírás
resource imagecreatetruecolor ( int width, int height )
imagecreatetruecolor() returns an image identifier representing a black image of the specified size.
és te ezen a néven próbálod menteni a képet, helyesen esetleg így lehet:
Akkor itt lehet baj. Azzal
Másik kérdés, tudsz valami jó manualt, vagy cikket ahol optimalizálásról és objektum orientálásról írnak, mert oké hogy megírom az átméretezést feltöltést, de még akkor még a bélyeget is meg kéne hozzá csinálnom, ami odaömlesztve mellette nem szép, és még csak kezdő vok (főleg oop-ban)...
függvény
Ami a manualt illeti, hát nem tudom én erre a könyvre emlékszem OOP és PHP kapcsán: George Schlossnagle: PHP fejlesztés felsőfokon. A többiek biztos tudnak mást is.