Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja skalująca -> zapisuje puste pliki.
Forum PHP.pl > Forum > PHP
patrycjusz
Witam.
Problem jak w temacie,
Funkcja działa, na localu nawet wszystko ładnie ale na serwie już mi zapisuje puste pliki, pytania:
1.gdzie jest błąd?
2. jaka jest potencjalna róznica u mnie na localu a na serwie w ustawieniach że tak się dzieje.
Kodzik.[php:1:5bc8f1f409]<?php
<?
class zdjecie
{
//funkcja odpowiedzialna za wstawianie zdjecia
function dodaj_zdjecie()
{
global $sciezka;
if (is_uploaded_file($_FILES["zdjecie"]["tmp_name"]))
{
copy($_FILES["zdjecie"]["tmp_name"], $sciezka['zdjecia'].$_FILES["zdjecie"]["name"]);
unlink($_FILES["zdjecie"]["tmp_name"]);
$this->skaluj("".$sciezka['zdjecia'].$_FILES["zdjecie"]["name"]."","".$sciezka['zdjecia']."/skal/".$_FILES["zdjecie"]["name"]."",120,120);
}
}
//funkcja odpowiedzialna za skalowanie zdjecia
function skaluj($sciezkaimg,$sciezkaskal,$szer,$wys)
{
$nazwa_pliku = basename($sciezkaimg);

$djpeg = "/usr/bin/djpeg";
$cjpeg = "/usr/bin/cjpeg";
$pnmscale = "/usr/bin/pnmscale";
$giftopnm = "/usr/bin/giftopnm";
$ppmtogif = "/usr/bin/ppmtogif";
$ppmquant = "/usr/bin/ppmquant";

$wielkosc = GetImageSize("$sciezkaimg");
$szerokosc = $wielkosc[0];
$wysokosc = $wielkosc[1];

if (($szerokosc < $szer && $wysokosc < $wys) || ($szer == '0' && $wysokosc < $wys) || ($szerokosc < $szer && $wys =='0')) {
exec("cp "$sciezkaimg" "$sciezkaskal"");
} else {

$skal = '0';

if ($szer != '0' && $wys != '0') {

$testszer = $szerokosc / $szer;
$testwys = $wysokosc / $wys;
if ($testszer >= $testwys) {
$skal = "-width $szer";
} else {
$skal = "-height $wys";
}
}

if ($szer == '0' && $wys != '0') {
$skal = "-height $wys";
}
if ($szer != '0' && $wys == '0') {
$skal = "-width $szer";
}

if (ereg(".gif",$nazwa_pliku) || ereg(".GIF",$nazwa_pliku)) {
exec("$giftopnm "$sciezkaimg" | $pnmscale $skal | $ppmquant 256 | $ppmtogif -interlace > "$sciezkaskal"");
}
if (ereg(".jpg",$nazwa_pliku) || ereg(".JPG",$nazwa_pliku)) {
exec("$djpeg "$sciezkaimg" | $pnmscale $skal | $cjpeg -outfile "$sciezkaskal"");
}

}
}
}
$zdjecie = new zdjecie;
?>
?>[/php:1:5bc8f1f409]
Myśle se co będe załował i wkleiłem cały :wink:
Z góry dzięki za zainteresowanie i pomoc.
Pozdrawiam patS.
zalew
- moze nie lapac $_FILES tylko $HTTP_POST_FILES
- sprawdzales wartosci zmiennych czy dobrze sie przekazuja az do samego konca? np starym dobrym echo()?
adwol
Zamień na chwilę te funkcje exec na system, żeby wywaliły Ci na ekran wyniki tych poleceń. Wtedy będzie można zobaczyć czy problem nie leży po stronie tych poleceń systemowych. Może któregoś nie być, albo być na innej ścieżce, albo w ogóle może się coś nie powieść, a tak zobaczysz co się dokładnie dzieje.

Zobacz, poza tym, czy napewno działa Ci kopiowanie uploadniętego pliku (vs safe_mode).
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.