konto usunięte

Temat: problem z generowaniem miniaturek

witam,
mam problem z generowaniem miniaturek.
skrypt który jest poniżej przesyła oryginalne zdjęcie na serwer ale nie zapisuje miniaturki.
raz coś przestawiłem i zapisywał ale nie miniaturkę tyko czarny kwadracik. może ktoś pomóc?
kod:
<?php
include("mod/connect.inc");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<meta http-equiv="refresh" content="2;url=http://zywieconline.pl/ogloszenia.php">
<title>Przesyłanie plików na serwer - Administrator</title>
<link rel="stylesheet" type="text/css" href="css/s.css">
</head>

<body>
<center><div class='logo'><a href='index.php'><img src='img/logo01.png'></a></div></center>

<?php
$p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku
$p_typ=$_FILES['plik']['type']; // typ pliku
$p_nazwa=$_FILES['plik']['name']; // nazwa pliku
$p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku
$data = $_POST['data'];
$autor = $_POST['autor'];
$tresc = $_POST['tresc'];
$kontakt = $_POST['kontakt'];
$kat = $_POST['kat'];
$nazwa = $_POST['nazwa'];

//wycinamy rozszerzenie z pobieranego pliku
$p_roz= array_pop(explode(".", $p_nazwa));

/* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca
po przecinku/dzielimy przez 1204*1024 by było w MB*/
$max_size=round(($_POST['max_file_size']/1048576),3)."MB";

//zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
$poj_MB=round(($p_pojemnosc/1048576),2).'MB';

//kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku
$p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;
$folder="galeria/ogloszenia/";

$path_file=$folder.$p_nazwa_zm;

// miniaturke tworzymy
$img = imagecreatefromjpeg("'.$path_file.'");
$width = imagesx($img);
$height = imagesy($img);
$width_mini = $width * 0.1;
$height_mini = $height * 0.1;
$img_mini = imagecreatetruecolor($width_mini, $height_mini);
imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);

imagejpeg($img_mini, "galeria/ogloszenia/min-".$p_nazwa_zm."", 90);
imagedestroy($img);
imagedestroy($img_mini);

// koniec miniaturek

//---Kolorki HTML---
$k_cze="<font color=#ff0000>";
$f_koniec="</font>";
$k_nieb="<font color=#0000ff>";
if ($p_pojemnosc <= 0)
{
echo ("");
echo "";
exit;
}

if ($poj_MB > $max_size)
{
echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />");
echo "<a href=dodaj.php>Wracaj ...";
exit;
}

if (file_exists($folder.$p_nazwa_zm))
{
echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />");
echo "<a href=dodaj.php>Wracaj ...";
exit;
}

else {
if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))
exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');

echo "<div class='brown'><center>Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." ".$poj_MB."<br />";
echo "<img src='$folder$p_nazwa_zm' style='max-width:600px;'><br />";

$conn = mysql_connect($host,$user,$pass) or die('Error connecting to mysql');
mysql_select_db($baza);
mysql_query("SET NAMES 'latin2'");
$zapytanie=mysql_query("insert into ogloszenia2 values(NULL,now(),'$autor','$tresc','$kontakt','$typ','$kat','$nazwa','$path_file','$mini')");
echo "dodano wpis do bazy danych";
}
?>
</body>
</html>
z góry dzięki za pomoc
Adam Pawliczek

Adam Pawliczek Usability expert, UX
designer,
Interaction
specialist

Temat: problem z generowaniem miniaturek

1. Zrobiłeś debug krok po kroku co robi skrypt?
2. Serwer może nie obsługiwać "copyresampled".
Arkadiusz Klenczar

Arkadiusz Klenczar DevOps Engineer, SAP
Hybris

Temat: problem z generowaniem miniaturek

Jak zamieszczasz kod, to mógłbyś go umieścić w BBCode, będzie się łatwiej czytało.
A teraz do rzeczy, z tego co widzę to cały skrypt znajduje się na zywieconline.pl. Próbowałem tam dodać ogłoszenie bez tytułu tj. samo zdjęcie i widzę że miniaturka się pojawia. Więc być może problem już rozwiązałeś. Tylko dziwne że formularz dodawania ogłoszenia puszcza samo zdjęcie i pozwala je dodać, bez podania pozostałych szczegółów ogłoszenia (kategorii, nazwy, itp).

konto usunięte

Temat: problem z generowaniem miniaturek

Rób takie rzeczy najlepiej za pomocą bibliotek.
np.

http://phpthumb.gxdlabs.com/

konto usunięte

Temat: problem z generowaniem miniaturek

Arkadiusz Klenczar:
Jak zamieszczasz kod, to mógłbyś go umieścić w BBCode, będzie się łatwiej czytało.
A teraz do rzeczy, z tego co widzę to cały skrypt znajduje się na zywieconline.pl. Próbowałem tam dodać ogłoszenie bez tytułu tj. samo zdjęcie i widzę że miniaturka się pojawia. Więc być może problem już rozwiązałeś. Tylko dziwne że formularz dodawania ogłoszenia puszcza samo zdjęcie i pozwala je dodać, bez podania pozostałych szczegółów ogłoszenia (kategorii, nazwy, itp).

no właśnie nie działa dalej, spróbuję na phpthumb zrobić.
a co można dać zamiast copyresampled?

Następna dyskusja:

Problem z generowaniem mini...




Wyślij zaproszenie do