Autor Zpráva
Looser
Profil *
Zdravim, mam docela vaznej problem, na svem webu v administraci mam moznost nahravani obrazku na web, vše fungovalo naprosto bez problémů ale pak najednou z ničeho nic (neprobehli zadne upravy ve zdrojovejch souborech) mi vždy při pokusu o nahrání obrázku vyskočí nekolik chybovejch hlášení a obrazek se samozřejme vubec nenahraje, zkusil sem cely web stahnout a spustit na svem počítači a vše šlo bez problému, proto by mě zajímalo jestli s tim nema nekdo zkusenost a nevi jak to opravit. Hosting mam na Savana.cz Napadlo me ze je to v nastaveni hostingu ale zadny nastaveni sem v dobe vzniku teto chyby nedelal.

Chybové hlášení při pokusu o nahrání obrázku:

Warning: copy() [function.copy]: Unable to access in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 111

Warning: rename(./,../galerie/orig/153.) [function.rename]: Device or resource busy in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 112

Warning: getimagesize() [function.getimagesize]: Unable to access ../galerie/orig/153. in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 114

Warning: getimagesize(../galerie/orig/153.) [function.getimagesize]: failed to open stream: No such file or directory in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 114

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 137

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 138

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 140

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 141

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /mnt/data/accounts/t/totallooser/data/www/krby2/admin/index.php on line 142


Script pro nahravani:

if ($_GET["sekce"] === "galerie" AND $_GET["act"] === "pridat"){
  echo "er:" .$file_type;
  $dir = "../galerie"; // definování výslednéhoadresáře
  if(!file_exists($dir)){ // když neexistuje složka kategorie galerie
    mkdir ($dir);
    chmod ($dir, 0777);
  }
  if (!is_writable ($dir)){chmod ($dir, 0777);} // když není složka kategorie určena pro zápis
  if (!is_writable ("./")){chmod ("./", 0777);} // když není složka admin určena pro zápis

  if($file_type == 'image/gif'){$typ_souboru = 'gif';}
  elseif(($file_type == 'image/jpeg') or ($file_type == 'image/pjpeg')){$typ_souboru = 'jpg';}
  elseif($file_type == 'image/png'){$typ_souboru = 'png';}

  $screens = mysql_query("SELECT MAX(id) FROM _galerie");
  $screenu = mysql_fetch_row($screens);
  $cislo_screenu = ($screenu[0]+1); // podle db zjistím číslo screenu

  $obr = $dir."/orig/".$cislo_screenu.".".$typ_souboru; // název a umístění nového obrázku
  $nahled = $dir."/".$cislo_screenu."-sml.".$typ_souboru; // název a umístění náhledu obrázku
  $vdz = "../images/vodoznak.png";

  if (file_exists($file_name.$file_type)){print "obrázek již s daným názvem existuje!";}
  else{

    copy($file, "./".$file_name); // překopíruji obrázek z přechodného adresáře do složky admin
    rename("./".$file_name, $obr); // zkopíruji obrázek ze složky admin do cílové složky pod novým názvem

    $size = GetImageSize($obr);
    $sizevdz = GetImageSize($vdz);
    $width = $size[0]; // šířka uploadovaného obrázku
    $heigh = $size[1]; // výška uploadovaného obrázku
    if ($width > $heigh){
      $ratio = $heigh/$width;
      $velx = 170;               // šířka náhledu obrázku
      $vely = round(170*$ratio); // výška náhledu obrázku
    }
    elseif ($width < $heigh){
      $ratio = $width/$heigh;
      $velx = round(150*$ratio); // šířka náhledu obrázku
      $vely = 150;               // výška náhledu obrázku
    }
    
    $dst_x = $size[0] - $sizevdz[0];  //vypočítá souřadnice umístění vodoznaku (x)
    $dst_y = $size[1] - $sizevdz[1];  //vypočítá souřadnice umístění vodoznaku (y)

    if ($typ_souboru == "jpg"){$img_in = imagecreatefromjpeg($obr);} // načtu velký obrázek
    elseif($typ_souboru == "gif"){$img_in = imagecreatefromgif($obr);} // načtu velký obrázek
    elseif($typ_souboru == "png"){$img_in = imagecreatefrompng($obr);} // načtu velký obrázek
    $img_vdz = imagecreatefrompng($vdz); //načte vodoznak

    $img = ImageCreateTrueColor($velx,$vely); // vytvořím TrueColor obrázek s rozměry náhledu
    imagecopyresampled($img,$img_in,0,0,0,0,$velx,$vely,$width,$heigh); // nakopíruju originál do náhledového formátu
    
    $imgv = imagecreatetruecolor($size[0],$size[1]);  // vytvořím TrueColor obrázek s původním rozměry
    imagecopyresized($imgv,$img_in,0,0,0,0,$size[0],$size[1],$size[0],$size[1]);
    imagecopyresized($imgv,$img_vdz,$dst_x,$dst_y,0,0,$sizevdz[0],$sizevdz[1],$sizevdz[0],$sizevdz[1]);

    if($typ_souboru == "jpg"){imagejpeg($img,$nahled,75);}  //uložím obrázek
    elseif($typ_souboru == "gif"){imagegif($img,$nahled);}  //uložím obrázek
    elseif($typ_souboru == "png"){imagepng($img,$nahled);}  //uložím obrázek
    
    $obr_vdz = $dir."/".$cislo_screenu.".".$typ_souboru;
    if($typ_souboru == "jpg"){imagejpeg($imgv,$obr_vdz,75);}  //uložím obrázek
    elseif($typ_souboru == "gif"){imagegif($imgv,$obr_vdz);}  //uložím obrázek
    elseif($typ_souboru == "png"){imagepng($imgv,$obr_vdz);}  //uložím obrázek
  }
}
Someone
Profil
Zkus nastavit složkám CHMOD 777
Looser
Profil *
chmod 777 je nastavenej
peta
Profil
1. Zjisti odkud kam funkci copy presunujes obrazky
2. Zjisti, jaka prava tam mas nastavena. Na hostingu radi meni prava bez upozorneni.
3. Zjisti, kolik volneho mista jeste muzes pouzit pro nahravani. Na hostingu jsou limity volneho mista.

Mozna ti neco z toho vypise tento kod http://peter-mlich.wz.cz/web/php/pr/upload/upl_manager.txt
Davex
Profil
Looser:
Kde se berou a co obsahují proměnné $file_type a $file_name?
Šéva
Profil
Podle mě to bude jen o právech na dané složky... v těch warningách je 2x napsáno "Unable to access" a to na řádcích 111 a 114, tak se mrkni, kam to směřuje na jaké složky a nastav tam znovu práva na 777

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: