Εμφανιση φωτογραφιων

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

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

Απάντηση
Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 23 Μαρ 2006 19:54

Γεια χαρα και παλι...
εχω ενα προβλημα με το κατεβασμα των φωτογραφιων μου. Συγκεκριμενα εχω τον πινακα οπου εβαλα

name varchar(30) - το ονομα του
pic mediumblob - το περιεχομενο (binary)
type varchar(30) - ο τυπος image/jpg
size int - μεγεθος 30 kb

και στον οποιο κανω εγω εγγραφες μεσω phpmyadmin για τις φωτογραφιες μου. Τον τυπο και το μεγεθος τα βαζω εγω
δεν τα παιρνει αυτοματα. Γραφω κωδικα

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

$result3 = mysql_query("SELECT name,price,pic,type,size,info FROM products WHERE id='$oid' ");
if (!$result3) {
	echo&#40;"<p>Λάθος &#58; " .
	mysql_error&#40;&#41; . "</p>"&#41;;
	exit&#40;&#41;;
	&#125;

while &#40;$row=mysql_fetch_array&#40;$result3&#41;&#41;
&#123;	
   echo&#40;"<p class=greenhead>".$row&#91;"name"&#93;."</p>"&#41;; 
   echo&#40;"<p class=grey><b>Τιμή</b>&#58; ".$row&#91;"price"&#93;." &euro;</p>"&#41;; 
	echo&#40;"<p class=grey><b>Περιγραφή</b>&#58;<br>".$row&#91;"info"&#93;."</p>"&#41;;
	header&#40;"Content-length&#58; $size"&#41;;
	header&#40;"Content-type&#58; $type"&#41;;
	header&#40;"Content-Disposition&#58; attachment; filename=$name"&#41;;
	 echo&#40;"<p class=grey><img src=".$row&#91;"pic"&#93;."></p>"&#41;; 
&#125;
και μου βγαζει λαθος το γνωστο

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\mine\ok\akt\offers.php:10) in c:\program files\easyphp1-8\www\mine\ok\akt\offers.php on line 138

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\mine\ok\akt\offers.php:10) in c:\program files\easyphp1-8\www\mine\ok\akt\offers.php on line 139

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\mine\ok\akt\offers.php:10) in c:\program files\easyphp1-8\www\mine\ok\akt\offers.php on line 140

το εικονιδιο με το κοκκινο χ που βγαινει οταν δεν βρισκει την εικονα και 100 σειρες ακαταλαβιστικα binary δεδομενα μαλλον.

Το μανουαλ δεν εχει κατι η τουλαχιστον εγω δεν βρηκα γιατι ειναι και τεραστιο 15 ΜΒ σελιδα.
Καμια βοηθεια; Συμβουλη;

Άβαταρ μέλους
iffor
Δημοσιεύσεις: 778
Εγγραφή: 14 Μάιος 2005 01:19
Τοποθεσία: Παράδεισος
Επικοινωνία:

Εμφανιση φωτογραφιων

Δημοσίευση από iffor » 23 Μαρ 2006 20:08

Hello!
Θα πρέπει να θυμάσαι ότι στην PHP πρώτα τελειώνεις με την αποστολή των headers και μετά δοκιμάζεις να εξάγεις δεδομένα!
Διάβασε εδώ για λίγο περισσότερες πληροφορίες σε ότι αναφορά την αποθήκευση εικόνας σε βάση MySQL!
μια νέα αρχή ξεκίνησε...
ένας καινούριος δρόμος άνοιξε...
redpanda.gr

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 23 Μαρ 2006 21:55

βασικα δεν το ηξερα !!
δεν ειναι το προβλημα μου να ανεβασω..το κανω με το myadmin.
Το προβλημα ειναι να τις κατεβασω.
Θα κοιταξω το λινκ σου ευχαριστω

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 23 Μαρ 2006 22:02

θα δοκιμασω να βαλω τα headers πιο ψηλα στο χεντ μπας και δουλεψει...
καπου το εχω ξαναπετυχει αυτο.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Εμφανιση φωτογραφιων

Δημοσίευση από ThyClub » 23 Μαρ 2006 22:07

Οι λύσεις είναι 2:

1. Στον κώδικα βάζεις τα headers σου πάνω απο οτιδήποτε κάνεις print και μετά με css διαμορφώνεις το layout. Αν πχ χρειάζεται να είναι πρώτα το κείμενο και μετά η εικόνα...

2. Δουλεύεις με το ob_start(); output buffering.

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 23 Μαρ 2006 22:32

αχα θα τα δοκιμασω...
βασικα βρηκα και αυτο

http://support.jodohost.com/archive/ind ... -4517.html

αν πετυχει θα ξαναστειλω να υπαρχει

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 24 Μαρ 2006 11:48

μπα ουτε αυτο δουλευεει...
βασικα εκανα ενα αρχειο product_image.php :

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

$result3 = mysql_query&#40;"SELECT name,price,pic,type,info FROM products WHERE id='$oid' "&#41;;
$pic = mysql_result&#40;$result3,0,"pic"&#41;;
$type = mysql_result&#40;$result3,0,"type"&#41;;

header&#40;"Content-type&#58; $type"&#41;;
echo $pic; 
και στο σημειο που θελω την εικονα εβαλα

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

<p class=grey><img src=\"product_image.php?oid=<?php echo $oid ?>\"></p>
τωρα δεν εχει προβλημα με τους headers αλλα εικονα δεν βλεπω γαμωτο πρωινιατικα

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 25 Μαρ 2006 16:40

παιδια χρειαζομαι επειγοντως βοηθεια...δεν μπορω να βρω τον τροπο με τιποτα.
Βασικα υποψιαζομαι πως αδικα παιδευομαι γιατι ακολουθησα και αυτο το τουτοριαλ που βρηκα κατα γραμμα και 1-2 αλλα και παλι εικονα δεν ειδα
http://www.onlamp.com/pub/a/onlamp/2002 ... ebdb2.html
Μαλλον εχω κατι λαθος στις ρυθμισεις. Δουλευω με την EasyPHP 1-8 και τρεχω τα αρχεια τοπικα για δοκιμη.
Δοκιμασα και αυτο

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

<html>
<head>
<title>&#91;dfsfasf</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-7">
<meta http-equiv=content-language content=el>
<body>
<img src="2.php?pid=53">
</body>
</html>
Το 2.php ειναι:

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

<?php
@MYSQL_CONNECT&#40;"localhost","*****","******"&#41;;
@mysql_select_db&#40;"test1"&#41;;
$query = "select pic,type from test where id= '1' ";
$result = @MYSQL_QUERY&#40;$query&#41;;
$data = @MYSQL_RESULT&#40;$result,0,"pic"&#41;;
$type = @MYSQL_RESULT&#40;$result,0,"type"&#41;;
echo "<BR><BR>";
header&#40;'Content-type&#58; ' . $type&#41;;
echo $data;
?>
Ο πινακας εγινε ως εξης:

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

CREATE TABLE `test` &#40;
  `id` int&#40;11&#41; NOT NULL default '0',
  `pic` blob NOT NULL,
  `type` varchar&#40;30&#41; NOT NULL default ''
&#41; ENGINE=MyISAM DEFAULT CHARSET=greek COLLATE=greek_general_ci DEFAULT CHARSET=greek;
και μεσω της PHPMyAdmin εβαλα μια εικονα με ιd 1 και για τυπο εγραψα image/jpeg.

Εχω κανει κατι λαθος; Παρακαλω πολυ καποιος μια βοηθεια γιατι μεχρι αυριο πρεπει να το εχω κανει και ηδη εχω φαει πολλες ωρες στο συγκεκριμενο σημειο μαλλον ασκοπα πιστευω με ατελειωτες δοκιμες.

ΥΓ βλεπω μονο το κοκκινο Χ στο μικρο εικονιδιο...δηλ δεν υπαρχει εικονα

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 25 Μαρ 2006 22:46

κανενας ρε παιδια...ολοι τριημερο φυγατε :D

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 26 Μαρ 2006 22:15

μαλλον :(

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 26 Μαρ 2006 22:34

ενταξει παιδια τελος βρηκα ενα καλο τουτοριαλ στο codewalkers.com και ξεμπερδεψα.--μονος μου τα λεω μονος μου τα διαβαζω-- :D
Για οσους εχουν τυχον το ιδιο προβλημα ειναι

http://codewalkers.com/tutorials/35/2.html

Άβαταρ μέλους
papatzas
Δημοσιεύσεις: 227
Εγγραφή: 03 Δεκ 2005 14:23

Εμφανιση φωτογραφιων

Δημοσίευση από papatzas » 27 Μαρ 2006 06:36

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

function uploadProductImage&#40;$inputName, $uploadDir&#41;
&#123;
	$image     = $_FILES&#91;$inputName&#93;;
	$imagePath = '';
	$thumbnailPath = '';
	
	// if a file is given
	if &#40;trim&#40;$image&#91;'tmp_name'&#93;&#41; != ''&#41; &#123;
		$ext = substr&#40;strrchr&#40;$image&#91;'name'&#93;, "."&#41;, 1&#41;; //$extensions&#91;$image&#91;'type'&#93;&#93;;

		// generate a random new file name to avoid name conflict
		$imagePath =  md5&#40;rand&#40;&#41; * time&#40;&#41;&#41; . ".$ext";
		
		list&#40;$width, $height, $type, $attr&#41; = getimagesize&#40;$image&#91;'tmp_name'&#93;&#41;; 

		// make sure the image width does not exceed the
		// maximum allowed width
		if &#40;LIMIT_PRODUCT_WIDTH && $width > MAX_PRODUCT_IMAGE_WIDTH&#41; &#123;
			$result    = createThumbnail&#40;$image&#91;'tmp_name'&#93;, $uploadDir . $imagePath, MAX_PRODUCT_IMAGE_WIDTH&#41;;
			$imagePath = $result;
		&#125; else &#123;
			$result = move_uploaded_file&#40;$image&#91;'tmp_name'&#93;, $uploadDir . $imagePath&#41;;
		&#125;	
		
		if &#40;$result&#41; &#123;
			// create thumbnail
			$thumbnailPath =  md5&#40;rand&#40;&#41; * time&#40;&#41;&#41; . ".$ext";
			$result = createThumbnail&#40;$uploadDir . $imagePath, $uploadDir . $thumbnailPath, THUMBNAIL_WIDTH&#41;;
			
			// create thumbnail failed, delete the image
			if &#40;!$result&#41; &#123;
				unlink&#40;$uploadDir . $imagePath&#41;;
				$imagePath = $thumbnailPath = '';
			&#125; else &#123;
				$thumbnailPath = $result;
			&#125;	
		&#125; else &#123;
			// the product cannot be upload / resized
			$imagePath = $thumbnailPath = '';
		&#125;
		
	&#125;

	
	return array&#40;'image' => $imagePath, 'thumbnail' => $thumbnailPath&#41;;
&#125;


define('THUMBNAIL_WIDTH', 90);
define('MAX_PRODUCT_IMAGE_WIDTH', 300);

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

function createThumbnail&#40;$srcFile, $destFile, $width, $quality = 85&#41;
&#123;
	$thumbnail = '';
	
	if &#40;file_exists&#40;$srcFile&#41;  && isset&#40;$destFile&#41;&#41;
	&#123;
		$size        = getimagesize&#40;$srcFile&#41;;
		$w           = number_format&#40;$width, 0, ',', ''&#41;;
		$h           = number_format&#40;&#40;$size&#91;1&#93; / $size&#91;0&#93;&#41; * $width, 0, ',', ''&#41;;
		
		$thumbnail =  copyImage&#40;$srcFile, $destFile, $w, $h, $quality&#41;;
	&#125;
	
	// return the thumbnail file name on sucess or blank on fail
	return basename&#40;$thumbnail&#41;;
&#125;

/*
	Copy an image to a destination file. The destination
	image size will be $w X $h pixels
*/
function copyImage&#40;$srcFile, $destFile, $w, $h, $quality = 85&#41;
&#123;
    $tmpSrc     = pathinfo&#40;strtolower&#40;$srcFile&#41;&#41;;
    $tmpDest    = pathinfo&#40;strtolower&#40;$destFile&#41;&#41;;
    $size       = getimagesize&#40;$srcFile&#41;;

    if &#40;$tmpDest&#91;'extension'&#93; == "gif" || $tmpDest&#91;'extension'&#93; == "jpg"&#41;
    &#123;
       $destFile  = substr_replace&#40;$destFile, 'jpg', -3&#41;;
       $dest      = imagecreatetruecolor&#40;$w, $h&#41;;
       imageantialias&#40;$dest, TRUE&#41;;
    &#125; elseif &#40;$tmpDest&#91;'extension'&#93; == "png"&#41; &#123;
       $dest = imagecreatetruecolor&#40;$w, $h&#41;;
       imageantialias&#40;$dest, TRUE&#41;;
    &#125; else &#123;
      return false;
    &#125;

    switch&#40;$size&#91;2&#93;&#41;
    &#123;
       case 1&#58;       //GIF
           $src = imagecreatefromgif&#40;$srcFile&#41;;
           break;
       case 2&#58;       //JPEG
           $src = imagecreatefromjpeg&#40;$srcFile&#41;;
           break;
       case 3&#58;       //PNG
           $src = imagecreatefrompng&#40;$srcFile&#41;;
           break;
       default&#58;
           return false;
           break;
    &#125;

    imagecopyresampled&#40;$dest, $src, 0, 0, 0, 0, $w, $h, $size&#91;0&#93;, $size&#91;1&#93;&#41;;

    switch&#40;$size&#91;2&#93;&#41;
    &#123;
       case 1&#58;
       case 2&#58;
           imagejpeg&#40;$dest,$destFile, $quality&#41;;
           break;
       case 3&#58;
           imagepng&#40;$dest,$destFile&#41;;
    &#125;
    return $destFile;

&#125;

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Εμφανιση φωτογραφιων

Δημοσίευση από oikonomou » 27 Μαρ 2006 22:09

σωστος..αυτο κανει thumbnails ετσι;

Άβαταρ μέλους
papatzas
Δημοσιεύσεις: 227
Εγγραφή: 03 Δεκ 2005 14:23

Εμφανιση φωτογραφιων

Δημοσίευση από papatzas » 28 Μαρ 2006 13:44

upload, elenxo epektasis eikonas

ethnikos
Δημοσιεύσεις: 39
Εγγραφή: 03 Μαρ 2006 15:13

Εμφανιση φωτογραφιων

Δημοσίευση από ethnikos » 03 Μάιος 2006 13:03

kapou to exo ksanadei...tha sou po argotera

Απάντηση

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

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

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