Αδυναμία αποθήκευσης εικόνας

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
christoz
Δημοσιεύσεις: 6
Εγγραφή: 26 Μαρ 2010 15:46

Αδυναμία αποθήκευσης εικόνας

Δημοσίευση από christoz » 23 Οκτ 2010 16:25

Παρακάτω είναι ο κώδικας για το ανέβασμα μιας εικόνας .png ή .jpg και για την δημιουργία του thumbnail της.

To πρόβλημα είναι οτι δεν αποθηκεύει το thumbnail στο δηλωμένο path "/../../thumbs", όπως και περίεργο είναι ότι το script δούλευει σε άλλο path το οποίο είναι σε διαφορετικό tree και level (ενοείται οτι ο owner και τα file privileges είναι τα ίδια).

Πιθανόν να είναι κάτι που δεν έχω αντιληφθεί ή κάπου κάνω κάτι λάθος. Θα ήθελα τη βοήθεια σας.

Ευχαριστω εκ των προτέρων.

Κώδικας: Επιλογή όλων

function a_upload (){       

       $thumb_width  	=	120;

       $thumb_height 	=	120;

       $imgdir 		= 	'../images/gallery/';

       $dimg 		= 	opendir($imgdir);

       $pro_img_name	=	basename( $_FILES['uploadedfile']['name']);

       $img_path 	= 	$imgdir . basename( $_FILES['uploadedfile']['name']);



       if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $img_path)) {

	      

	      $thumb		=	createthumb($img_path, $thumb_width, $thumb_height);

	      $thumb_imgdir	= 	'../images/gallery/thumbs/';

	      $thumb_img_name	=	substr_replace($pro_img_name, '_thumb', -4, 0);

	      $thumb_img_path	= 	$thumb_imgdir.$thumb_img_name;

	      

	      //echo $thumb_img_path; die();

	      $array=explode('.',$img_path);

	     // print_r($array); die();

	      if (preg_match('/jpg|jpeg/',$array[1])){		     

		     imagejpeg($thumb, $thumb_img_path, 100) ;

	      }

	      if (preg_match('/png/',$array[1])){

		     imagepng($thumb, $thumb_img_path, 100) ;

	      }


              go('index.php?page=photos');	     

       } else {

	      echo "Fail!!!, please <a href=\"index.php?page=photos\">try again!</a>";

       &#125;

&#125;

       



function createthumb &#40;$img_path, $thumb_width, $thumb_height&#41;&#123;

       list &#40;$img_width, $img_height&#41;	= getimagesize&#40;$img_path&#41;;

       $xscale	=	$img_width/$thumb_width;

       $yscale	=	$img_height/$thumb_height;

       

       if &#40;$yscale>$xscale&#41;&#123;

       //echo "yscale>xsclae";

       $new_width = round&#40;$img_width * &#40;1/$yscale&#41;&#41;;

       $new_height = round&#40;$img_height * &#40;1/$yscale&#41;&#41;;

       &#125;else &#123;

	      $new_width = round&#40;$img_width * &#40;1/$xscale&#41;&#41;;

	      $new_height = round&#40;$img_height * &#40;1/$xscale&#41;&#41;;

       &#125;

       

       $image_thumb  = imagecreatetruecolor&#40;$new_width, $new_height&#41;;

       $system=explode&#40;'.',$img_path&#41;;

       

       if &#40;preg_match&#40;'/jpg|jpeg/',$system&#91;1&#93;&#41;&#41;&#123;

		$image_tmp=imagecreatefromjpeg&#40;$img_path&#41;;

		//print_r &#40;$new_image&#41;; die&#40;&#41;;

       &#125;

       if &#40;preg_match&#40;'/png/',$system&#91;1&#93;&#41;&#41;&#123;

		$image_tmp=imagecreatefrompng&#40;$img_path&#41;;

       &#125;

       imagecopyresampled&#40;$image_thumb, $image_tmp, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height&#41;;

       

       return $image_thumb;      

&#125;



Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Αδυναμία αποθήκευσης εικόνας

Δημοσίευση από fafos » 23 Οκτ 2010 17:46

zhtas na kanei explode sthn teleia gia na vreis to format ths eikonas... exontas sto path 2 teleies (../images) sou gyrnaei thn deuterh teleia apo to path kai oxi thn teleia ths katalhkshs (p.x. .jpg)

tha zhtas panta to teleutaio kommati ths array giati ektos tou path mporei na yparxei kapoia teleia kai ston titlo (p.x. fafos.theos.jpg)

opote exoume:

1.

Κώδικας: Επιλογή όλων

         $array=explode&#40;'.',$img_path&#41;;
         $array = strtolower &#40;end&#40;$array&#41;&#41;;


kai



       $system=explode&#40;'.',$img_path&#41;;
       $system = strtolower &#40;end&#40;$system&#41;&#41;;


2. opou exeis $array[1] kai $system[1] kaneta sketa $array kai $system

(to strtolower () to xrhsimopoio se periptosh pou to format einai me kefalaia)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

christoz
Δημοσιεύσεις: 6
Εγγραφή: 26 Μαρ 2010 15:46

Αδυναμία αποθήκευσης εικόνας

Δημοσίευση από christoz » 24 Οκτ 2010 13:25

Έχεις απόλυτο δίκιο, αυτή είναι η λύση, ευχαριστώ πολυ για τον χρόνο σου.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες