dokładnie błąd wygląda tak:
Warning: unlink(../pliki/folder/unlink.jpg) [function.unlink]: Permission denied in C:\wamp\www\var\www\strona\upload\do_2.php on line 178
czyli nic ciekawego nie daje...
co dziwne można robić upload kilku plików i za którymś razem dopiero wyskoczy takowy błąd...
po wykluczaniu przyczyn metodą prób i błędów doszedłem do tego, że funkcja unlink działa za każdym razem gdy nie będę przetwarzał wysłanego obrazka. teraz tylko pozostaje pytanie co takiego robią moje funkcje, że ów plik nie chce się później usunąć.
gdy używam ich pojedynczo to wszystko działa bez problemów. jeżeli wywołam jedną po drugiej przesłany obrazek nie będzie mógł się usunąć.
function zrob_miniaturke($plik, $nowa_sz, $nowa_w, $miniaturka){
$wytnij = false;
switch ($info['mime'])
{
case "image/gif":
$plik = imagecreatefromgif($plik);
break;
case "image/jpeg":
$plik = imagecreatefromjpeg($plik);
break;
case "image/png":
$plik = imagecreatefrompng($plik);
break;
}
$plik_sz = imageSX($plik);
$plik_w = imageSY($plik);
if ($plik_sz > $plik_w)
{
if (($plik_w/$plik_sz) == '0.75'){
$miniaturka_sz=$nowa_sz;
$miniaturka_w=$nowa_w;
}else{
$miniaturka_sz=$nowa_w*($plik_sz/$plik_w);
$miniaturka_w=$nowa_w;
$wytnij = true;
}
}
if ($plik_sz < $plik_w)
{
$miniaturka_sz=$nowa_sz;
$miniaturka_w=$nowa_sz*($plik_w/$plik_sz);
$wytnij = true;
}
if ($plik_sz == $plik_w)
{
$miniaturka_sz=$nowa_sz;
$miniaturka_w=$nowa_sz;
$wytnij = true;
}
$nowy_plik = ImageCreateTrueColor($nowa_sz, $nowa_w);
if($wytnij){
if ($miniaturka_sz > $nowa_sz){
$zmienna = round((($miniaturka_sz-$nowa_sz)/2
)*($plik_sz/$miniaturka_sz)); $zmienna2 = $plik_sz-$zmienna*2;
@imagecopyresampled($nowy_plik, $plik, 0, 0, $zmienna, 0, $nowa_sz, $nowa_w, $zmienna2, $plik_w);
}elseif($miniaturka_w > $nowa_w){
$zmienna = round((($miniaturka_w-$nowa_w)/2
)*($plik_w/$miniaturka_w)); $zmienna2 = $plik_w-$zmienna*2;
@imagecopyresampled($nowy_plik, $plik, 0, 0, 0, $zmienna, $nowa_sz, $nowa_w, $plik_sz, $zmienna2);
}
}else{
$zmienna = round((($miniaturka_w-$nowa_w)/2
)*($plik_w/$miniaturka_w)); $zmienna2 = $plik_w-$zmienna*2;
@imagecopyresampled($nowy_plik, $plik, 0, 0, 0, $zmienna, $nowa_sz, $nowa_w, $plik_sz, $zmienna2);
}
@imagejpeg($nowy_plik, $miniaturka, '90');
@imagedestroy($plik);
@imagedestroy($nowy_plik);
return TRUE;
}
function przeskaluj_zdjecie($plik, $nowa_sz, $nowa_w, $plik_2){
switch ($info['mime'])
{
case "image/gif":
$plik = imagecreatefromgif($plik);
break;
case "image/jpeg":
$plik = imagecreatefromjpeg($plik);
break;
case "image/png":
$plik = imagecreatefrompng($plik);
break;
}
$plik_sz = imageSX($plik);
$plik_w = imageSY($plik);
if ($plik_sz > $plik_w)
{
if ($plik_sz > $nowa_sz){
$plik_2_sz = $nowa_sz;
$plik_2_w = $nowa_sz*($plik_w/$plik_sz);
}else{
$plik_2_sz = $plik_sz;
$plik_2_w = $plik_w;
}
}
if ($plik_sz < $plik_w)
{
if ($plik_sz > $nowa_sz){
$plik_2_sz = $nowa_sz;
$plik_2_w = $nowa_sz*($plik_sz/$plik_w);
}else{
$plik_2_sz = $plik_sz;
$plik_2_w = $plik_w;
}
if ($plik_w > $nowa_w){
$plik_2_sz = $nowa_w*($plik_sz/$plik_w);
$plik_2_w = $nowa_w;
}
}
if ($plik_sz == $plik_w)
{
$plik_2_sz=$nowa_w;
$plik_2_w=$nowa_w;
}
$nowy_plik = ImageCreateTrueColor($plik_2_sz, $plik_2_w);
@imagecopyresampled($nowy_plik, $plik, 0, 0, 0, 0, $plik_2_sz, $plik_2_w, $plik_sz, $plik_w);
@imagejpeg($nowy_plik, $plik_2, '90');
@imagedestroy($plik);
@imagedestroy($nowy_plik);
return TRUE;
}