Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prawa do tworzonego pliku na serwerze
Forum PHP.pl > Forum > Przedszkole
ToPeR
Witam
Mam pewien problem, mianowicie:
Uloaduje zdjęcie i skryptem php przerabiam go na dwa mniejsze zdjęcia, które nastepnie zapisuje w tym samym katalogu o różnych nazwach.
Uloadowane zdjęcie poprostu:
1. zmniejsza do 800x600 i zapisuje jako: foto1.jpg
2. zmniejsza do 133x120 i zapisuje jako: foto1_mini.jpg
i jescze ich parametry zapisuję do bazy. NIC więcej...
I problem polega na tym, że większe zdjęcie po zapisaniu ma atrybut 600 a mniejsze zdjęcie ma atrybut: 644
a wykonuje je ten sam skrypt. Czy macie jakieś sugestie, co powinienem sprawdzić ?! (bo żywcem nie wiem, co może być nie tak).
wassago
najlepiej pokaz nam kod zrodlowy skrypu.
ToPeR
Część kodu zapisu z formularza:
[php:1:ff066c6bfb]<?php
...
$uploaddir = '../foto/';
$uploadfile = $uploaddir.$_FILES['file']['name'];
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
$pyt5.= ", foto='".image_resize($uploadfile)."'";
}
...
?>[/php:1:ff066c6bfb]

a oto najważniejsza cześć funkcji: image_resize();
[php:1:ff066c6bfb]<?php
...
$destination_image = imagecreatetruecolor($new_image["width"],$new_image["height"]);
imagecopyresampled($destination_image, $source_image_link, 0, 0, 0, 0, $new_image["width"], $new_image["height"], $source_image[0], $source_image[1]);
imagejpeg($destination_image,$image_name);
imagedestroy($destination_image);
imagedestroy($source_image_link);

$source_image_link = imagecreatefromjpeg($image_name);
$destination_image = imagecreatetruecolor($new_small_image["width"],$new_small_image["height"]);
imagecopyresampled($destination_image,$source_image_link,0,0,0,0,$new_small_imag
["width"],$new_small_image["height"],$new_image["width"],$new_image["height"]);
$image_name_lenght = strlen($image_name);

$image_name = substr($image_name, 0, $image_name_lenght - 4);
imagejpeg($destination_image, $image_name ."_small.jpg");
imagedestroy($destination_image);
$image_name = substr($image_name,3);
$database["query"] = "INSERT INTO images(src,width,height,width_small,height_small) VALUES('".$image_name."','".$new_image["width"]."','".$new_image["height"]."','".$new_small_image["width"]."','".$new_small_image["height"]."');";
$result = mysql_query($database["query"],$link);
$lastid = mysql_insert_id();
return ($lastid);
}
?>[/php:1:ff066c6bfb]
ToPeR
Panowie, co jest ?! Żadnych sugesti ?
Może jakieś pomysły, gdzie szukać przyczyn ?
wassago
Na odpowiedzi czekamy 48 godzin, gdy nikt w tym czasie nie zaproponuje rozwiazania, mozna sie o takowe upomniec.

Co do skryptu: moze po prostu po wykonanych operacjach zmien chmod'y plikow - http://pl2.php.net/manual/pl/function.chmod.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.