Uploading Images php βοηθειααα

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

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

Απάντηση
Dimitris Kyr
Δημοσιεύσεις: 2
Εγγραφή: 14 Οκτ 2011 16:05

Uploading Images php βοηθειααα

Δημοσίευση από Dimitris Kyr » 14 Οκτ 2011 16:13

Εχω ελαχιστες γνωσεις php αλλα κολλωντας ετοιμα κωδικακια που βρηκα απο δω κι απο κει εφτιαξα αυτον τον κωδικα ο οποιος δουλευει...ανεβαζει μια εικονα στον φακελο images την κανει resize στην αναλυση που θελω και την εμφανιζει κιολας στον browser...το θεμα ειναι οτι θελω ο καθε χρηστης του site μου να ανεβαζει μεχρι 3!! φωτογραφιες...πως μπορει να γινει αυτο??? Σας ευχαριστω προκαταβολικα...

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

<?php ini_set&#40;"memory_limit", "200000000"&#41;; // for large images so that we do not get "Allowed memory exhausted"?>
<?php
// upload the file
if &#40;&#40;isset&#40;$_POST&#91;"submitted_form"&#93;&#41;&#41; && &#40;$_POST&#91;"submitted_form"&#93; == "image_upload_form"&#41;&#41; &#123;
	
	// file needs to be jpg,gif,bmp,x-png and 4 MB max
	if &#40;&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/jpeg" || $_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/pjpeg" || $_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/gif" || $_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/x-png"&#41; && &#40;$_FILES&#91;"image_upload_box"&#93;&#91;"size"&#93; < 4000000&#41;&#41;
	&#123;
		
  	$filename=$_FILES&#91;"image_upload_box"&#93;&#91;"name"&#93;;
		// some settings
		$max_upload_width = 160;
		$max_upload_height = 120;
		  
		// if user chosed properly then scale down the image according to user preferances
		if&#40;isset&#40;$_REQUEST&#91;'max_width_box'&#93;&#41; and $_REQUEST&#91;'max_width_box'&#93;!='' and $_REQUEST&#91;'max_width_box'&#93;<=$max_upload_width&#41;&#123;
			$max_upload_width = $_REQUEST&#91;'max_width_box'&#93;;
		&#125;    
		if&#40;isset&#40;$_REQUEST&#91;'max_height_box'&#93;&#41; and $_REQUEST&#91;'max_height_box'&#93;!='' and $_REQUEST&#91;'max_height_box'&#93;<=$max_upload_height&#41;&#123;
			$max_upload_height = $_REQUEST&#91;'max_height_box'&#93;;
		&#125;	

		
		// if uploaded image was JPG/JPEG
		if&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/jpeg" || $_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/pjpeg"&#41;&#123;	
			$image_source = imagecreatefromjpeg&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"tmp_name"&#93;&#41;;
		&#125;		
		// if uploaded image was GIF
		if&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/gif"&#41;&#123;	
			$image_source = imagecreatefromgif&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"tmp_name"&#93;&#41;;
		&#125;	
		// BMP doesn't seem to be supported so remove it form above image type test &#40;reject bmps&#41;	
		// if uploaded image was BMP
		if&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/bmp"&#41;&#123;	
			$image_source = imagecreatefromwbmp&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"tmp_name"&#93;&#41;;
		&#125;			
		// if uploaded image was PNG
		if&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"type"&#93; == "image/x-png"&#41;&#123;
			$image_source = imagecreatefrompng&#40;$_FILES&#91;"image_upload_box"&#93;&#91;"tmp_name"&#93;&#41;;
		&#125;
		

		$remote_file = "image_files/".$_FILES&#91;"image_upload_box"&#93;&#91;"name"&#93;;
		imagejpeg&#40;$image_source,$remote_file,100&#41;;
		chmod&#40;$remote_file,0644&#41;;
	
	

		// get width and height of original image
		list&#40;$image_width, $image_height&#41; = getimagesize&#40;$remote_file&#41;;
	
		if&#40;$image_width>$max_upload_width || $image_height >$max_upload_height&#41;&#123;
			$proportions = $image_width/$image_height;
			
			if&#40;$image_width>$image_height&#41;&#123;
				$new_width = $max_upload_width;
				$new_height = round&#40;$max_upload_width/$proportions&#41;;
			&#125;		
			else&#123;
				$new_height = $max_upload_height;
				$new_width = round&#40;$max_upload_height*$proportions&#41;;
			&#125;		
			
			
			$new_image = imagecreatetruecolor&#40;$new_width , $new_height&#41;;
			$image_source = imagecreatefromjpeg&#40;$remote_file&#41;;
			
			imagecopyresampled&#40;$new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height&#41;;
			imagejpeg&#40;$new_image,$remote_file,100&#41;;
			
			imagedestroy&#40;$new_image&#41;;
		&#125;
		
		imagedestroy&#40;$image_source&#41;;
		
		
		header&#40;"Location&#58; submit.php?upload_message=image uploaded&upload_message_type=success&show_image=".$_FILES&#91;"image_upload_box"&#93;&#91;"name"&#93;&#41;;
		exit;
	&#125;
	else&#123;
		header&#40;"Location&#58; submit.php?upload_message=make sure the file is jpg, gif or png and that is smaller than 4MB&upload_message_type=error"&#41;;
		exit;
	&#125;
&#125;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Image Upload with resize</title>
<style type="text/css">
<!--
body,td,th &#123;
	font-family&#58; Arial, Helvetica, sans-serif;
	color&#58; #333333;
	font-size&#58; 12px;
&#125;

.upload_message_success &#123;
	padding&#58;4px;
	background-color&#58;#009900;
	border&#58;1px solid #006600;
	color&#58;#FFFFFF;
	margin-top&#58;10px;
	margin-bottom&#58;10px;
&#125;

.upload_message_error &#123;
	padding&#58;4px;
	background-color&#58;#CE0000;
	border&#58;1px solid #990000;
	color&#58;#FFFFFF;
	margin-top&#58;10px;
	margin-bottom&#58;10px;
&#125;



-->
</style></head>

<body>

<h1 style="margin-bottom&#58; 0px">Submit an image</h1>


        <?php if&#40;isset&#40;$_REQUEST&#91;'upload_message'&#93;&#41;&#41;&#123;?>
            <div class="upload_message_<?php echo $_REQUEST&#91;'upload_message_type'&#93;;?>">
            <?php echo htmlentities&#40;$_REQUEST&#91;'upload_message'&#93;&#41;;?>
            </div>
		<?php &#125;?>


<form action="submit.php" method="post" enctype="multipart/form-data" name="image_upload_form" id="image_upload_form" style="margin-bottom&#58;0px;">
<label>Image file, maximum 4MB. it can be jpg, gif,  png&#58;</label><br />
          <input name="image_upload_box" type="file" id="image_upload_box" size="40" />
          <input type="submit" name="submit" value="Upload image" /> 
                  
     
     <br />
	<br />

     
            

      

<input name="submitted_form" type="hidden" id="submitted_form" value="image_upload_form" />
          </form>



<?php if&#40;isset&#40;$_REQUEST&#91;'show_image'&#93;&#41; and $_REQUEST&#91;'show_image'&#93;!=''&#41;&#123;?>
<p>
	<img src="image_files/<?php echo $_REQUEST&#91;'show_image'&#93;;?>" />
	<br />
</p>
<?php &#125;?>
<br />







</body>
</html>


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

Uploading Images php βοηθειααα

Δημοσίευση από fafos » 14 Οκτ 2011 20:57

den exei sxesh me thn forma upload auto pou zhtas... prepei na exeis eggergrammenous xrhstes-melh... otan gnorizeis oti ego pou pao na anevaso ena arxeio eimai o fafos mporeis na doseis mia synthikh h opoia tha metraei sthn vash dedomenon posa areia exo anevasei kai na "troo porta" otan eimai sto orio..

an den exeis stoixeia tou xrhsth yparxoun 100+1 tropoi gia na parakampso to orio kai na anevaso osa arxeia thelo..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Dimitris Kyr
Δημοσιεύσεις: 2
Εγγραφή: 14 Οκτ 2011 16:05

Uploading Images php βοηθειααα

Δημοσίευση από Dimitris Kyr » 14 Οκτ 2011 21:48

Μαλλον εγω εκανα λαθος στην εξηγηση του τι θελω...θα γινοταν ας πουμε αντι για μια φορμα εικονας που εχει ο κωδικας μου να εχει 3 και να δουλευουν κι οι 3 για ξεχωριστες εικονες? αυτο δεν μπορω να κανω... Το ιδανικο θα ηταν 3 φορμες με 3 διαφορετικες προεπισκοπησεις των εικονων που υπαρχουν σε καθε φορμα...αυτο δεν μπορω να κανω...:/

Kypros Lambrou
Δημοσιεύσεις: 96
Εγγραφή: 17 Οκτ 2011 13:29

Uploading Images php βοηθειααα

Δημοσίευση από Kypros Lambrou » 18 Οκτ 2011 13:07

Dimitris Kyr έγραψε:Μαλλον εγω εκανα λαθος στην εξηγηση του τι θελω...θα γινοταν ας πουμε αντι για μια φορμα εικονας που εχει ο κωδικας μου να εχει 3 και να δουλευουν κι οι 3 για ξεχωριστες εικονες? αυτο δεν μπορω να κανω... Το ιδανικο θα ηταν 3 φορμες με 3 διαφορετικες προεπισκοπησεις των εικονων που υπαρχουν σε καθε φορμα...αυτο δεν μπορω να κανω...:/
Καλησπέρα Δημήτρη.

Αν κατάλαβα απο αυτό σου το μήνυμα εσύ θέλεις στην ίδια σελίδα να έχεις την επιλογή να ανεβάζεις τρείς εικόνες ταυτόχρονα. Αν είναι έτσι τότε θα πρέπει να διαφοροποιήσεις την σελίδα που έχεις "συναρμολογήσει" για να έχεις ΜΙΑ φόρμα με ΤΡΙΑ input fields, ένα για κάθε εικόνα.
Άρα μέσα στην φόρμα θα έχεις κάτι έτσι:

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

<input name="image_upload_box1" type="file" id="image_upload_box" size="40" /> 

<input name="image_upload_box2" type="file" id="image_upload_box" size="40" /> 

<input name="image_upload_box3" type="file" id="image_upload_box" size="40" /> 

Το θέμα όμως εδώ μιας και είσαι και καινούργιος στην PHP θα είναι ο χειρισμός τον τριών φωτογραφιών αφού όλα αλλάζουν για να μπορείς να κάνεις upload και τις τρεις ταυτόχρονα.

Σου προτείνω αν δεν το έχεις δει καθόλου να δεις πως μπορείς να κάνεις functions έτσι ώστε να δημιουργήσεις ένα για τον διαχειρισμό της εικόνας και να το καλείς όταν ο χρήστης έχει επιλέξει κάποια εικόνα για ανέβασμα.

Από εδώ και πέρα εσύ θα πρέπει να ελέγχεις στην php κατά πόσο ο χρήστης έχει βάλει 1,2 ή 3 εικόνες για ανέβασμα και ανάλογα να τις ανεβάζεις στον server και μετά να του τις εμφανίζεις στην σελίδα ανάλογα.

Απάντηση

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

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

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