δημιουργία folder για κάθε upload

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

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

Απάντηση
dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

δημιουργία folder για κάθε upload

Δημοσίευση από dtravlos » 10 Ιουν 2010 15:43

Καλησπέρα! Έχω ένα script με το οποίο ανεβάζω εικόνες. Η φόρμα του έχει 3 πεδία. Το όνομα πχ της καταχώρησης που θέλω να εμφανίζονται οι εικόνες, τον τίτλο της εικόνας και το αρχείο. Επειδή πολλές εικόνες έχουν το ίδιο όνομα αρχείου γίνονται replace και αλλάζουν και οι εικόνες από άλλες καταχωρήσεις. Πώς γίνεται να δημιουργείται ένας φάκελος για κάθε ξεχωριστή καταχώρηση και να έχει μέσα τις φωτογραφίες που θα ανεβάζω; Δοκίμασα να βάλω το id της κάθε καταχώρησης σαν όνομα φακέλου αλλά δεν μπορεί να γίνει! Σας παραθέτω και τον κώδικα μήπως μπορεί κανείς να με βοηθήσει!
Ευχαριστώ!

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

<?php
	if &#40;$Submit&#41;
	&#123;
		if &#40;substr&#40;$_FILES&#91;"upload"&#93;&#91;"name"&#93;,strlen&#40;$_FILES&#91;"upload"&#93;&#91;"name"&#93;&#41;-3,3&#41; == "jpg"&#41;
		&#123;
			
			$uploadDir = "../images/".$hotelid."/";
			$upload_name= substr&#40;$_FILES&#91;"upload"&#93;&#91;"name"&#93;, 0,-4&#41;.".jpg";
			$dest = $uploadDir.$upload_name;
			if &#40;move_uploaded_file&#40;$_FILES&#91;'upload'&#93;&#91;'tmp_name'&#93;,$dest&#41;&#41;
			&#123;
				list&#40;$width, $height&#41; = getimagesize&#40;$dest&#41;;
				if &#40;$width > 1024 or $height > 768&#41;
				&#123;
					if &#40;$width > $height&#41;
					&#123;
						$newWidth = 640;
						$ratio = round&#40;$height/$width,2&#41;;
						$newHeight = $newWidth * $ratio;
					&#125;
					else
					&#123;
						$newHeight = 480;
						$ratio = round&#40;$width/$height,2&#41;;
						$newWidth = $newHeight * $ratio;
					&#125;			
					$src_img = imagecreatefromjpeg&#40;$dest&#41;;
					$dst_img = imagecreatetruecolor&#40;$newWidth,$newHeight&#41;;
					imagecopyresampled&#40;$dst_img,$src_img,0,0,0,0,$newWidth,$newHeight,imagesx&#40;$src_img&#41;,imagesy&#40;$src_img&#41;&#41;;
					imagejpeg&#40;$dst_img,$dest&#41;;		
				&#125;		
				$thumb_name=substr&#40;$_FILES&#91;"upload"&#93;&#91;"name"&#93;, 0,-4&#41;."_s.jpg";
				$thumb_path="../images/".$hotelid."/".$thumb_name;
				$thumb_w=125;
				$thumb_h=100;
				$src_img = imagecreatefromjpeg&#40;$dest&#41;;
				$dst_img = imagecreatetruecolor&#40;$thumb_w,$thumb_h&#41;;
				imagecopyresampled&#40;$dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,imagesx&#40;$src_img&#41;,imagesy&#40;$src_img&#41;&#41;;
				//imagesetthickness&#40;$dst_img,0&#41;;
				//$color=imagecolorallocate&#40;$dst_img, 209, 159, 42&#41;;
				//imageline&#40;$dst_img,0,0,0,$thumb_h,$color&#41;;
				//imageline&#40;$dst_img,0,0,$thumb_w,0,$color&#41;;
				//imageline&#40;$dst_img,$thumb_w-1,0,$thumb_w-1,$thumb_h-1,$color&#41;;
				//imageline&#40;$dst_img,0,$thumb_h-1,$thumb_w-1,$thumb_h-1,$color&#41;;
				imagejpeg&#40;$dst_img,$thumb_path&#41;;
				
				mysql_query&#40;"INSERT INTO uploads &#40;title,image,thumb,hotelid,publish&#41; VALUES &#40;'$title', '$upload_name', '$thumb_name', $hotelid, $publish&#41;", $db&#41;;
?>
<table width="800" border="0" cellspacing="0" cellpadding="0" align="center">
	<tr>
		<td align="center" valign="top" background="admin-images/bg-01.jpg">
			<br>
			<table width="700" border="0" cellspacing="0" cellpadding="0" align="center">
				<tr>
					<td align="center" valign="middle" class="top-title">Η φωτογραφία ανέβηκε</td>
				</tr>
			</table>
			<br>
		</td>
	</tr>
	<tr>
		<td align="center" valign="top" bordercolor="#FFFFFF" bgcolor="#FFFFFF"><img src="admin-images/bottom-01.jpg" width="800" height="1"></td>
	</tr>
</table>
<meta http-equiv="refresh" content="1;URL=index.php">
<?php
			&#125;
			else
			&#123;
				echo "<script language=javascript>	alert&#40;'Το αρχείο δεν ανέβηκε. Παρακαλώ προσπαθήστε ξανά!'&#41;;</script>";
				echo "<meta http-equiv='refresh' content='0;URL=new-photo2.php'>";
			&#125;
		&#125;
		else
		&#123;
			echo "<script language=javascript>	alert&#40;'Δεν έχετε επιλεξει αρχείο ή το αρχείο που επιλεξατε δεν είναι jpg'&#41;;</script>";
			echo "<meta http-equiv='refresh' content='0;URL=new-photo2.php'>";
		&#125;
	&#125;
	else
	&#123;
?>
<table width="800" border="0" cellspacing="0" cellpadding="0" align="center">
	<tr>
		<td align="center" valign="top" background="admin-images/bg-01.jpg">
			<br>
			<form action="<?php echo $PHP_SELF ?>" method="post" enctype="multipart/form-data" name="new_product_image">
			<table width="400" border="0" cellspacing="0" cellpadding="0" align="center" class="content">
				<tr>
					<td height="25" align="left" valign="middle">Ξενοδοχείο&#58;
					</td>
					<td height="25" colspan="2" align="left" valign="middle"><select name="hotelid">
						<?php 
 					$hotels = mysql_query&#40;"SELECT id, hoteltitle, hotelalias FROM hotels ORDER BY hoteltitle", $db&#41;;
					while&#40;$hotelRow = mysql_fetch_array&#40;$hotels&#41;&#41; &#123;
						$hotelid = $hotelRow&#91;'id'&#93;;
						$hoteltitle = $hotelRow&#91;'hoteltitle'&#93;;
						$hotelalias = $hotelRow&#91;'hotelalias'&#93;;
					
				?>
                <option value="<?php echo $hotelid ?>"><?php echo $hoteltitle ?></option>
                <?php &#125; ?>
                </select>           
					</td>
				</tr>
				<tr>
				  <td height="25" align="left" valign="middle">Τίτλος Φωτογραφίας&#58;</td>
				  <td height="25" colspan="2" align="left" valign="middle"><input type="text" name="title" id="title"></td>
			  </tr>
				<tr>
					<td width="150" height="30" align="left" valign="middle">Επιλέξτε φωτογραφία&#58;</td>
					<td width="250" height="25" colspan="2" align="left" valign="middle"><input name="upload" type="File" size="24" value = "<?php echo $upload; ?>"></td>
				</tr>
				<tr>
				  <td height="30" align="left" valign="middle">Δημοσιευμένο&#58;</td>
				  <td height="25" colspan="2" align="left" valign="middle"><select name="publish" id="publish">
				    <option value="1">Ναί</option>
				    <option value="0">Όχι</option>
			      </select></td>
			  </tr>
				<tr>
					<td height="30" colspan="2" align="center" valign="middle"><input name="Submit" type="submit" class="forms" value="Καταχώρηση"></td>
				</tr>
			</table>
			</form>
<?php &#125; ?>

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

δημιουργία folder για κάθε upload

Δημοσίευση από Banavas » 10 Ιουν 2010 18:29

Δεν εξέτασα τον κώδικα που έδωσες αλλά η λύση στο πρόβλημα σου είναι να μετονομάζεις την φωτογραφία σε κάποιο μοναδικό όνομα κατά το ανέβασμα.
Happy coding....
Μάρκος
http://lasernet.gr

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

δημιουργία folder για κάθε upload

Δημοσίευση από dtravlos » 10 Ιουν 2010 18:33

Καλησπέρα! Ευχαριστώ για την απάντηση! Αλλά το έχω σαν τελευταία λύση γιατί παίζει να ανέβουνε και 2000 φωτογραφίες... Οπότε...

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

δημιουργία folder για κάθε upload

Δημοσίευση από fafos » 10 Ιουν 2010 19:15

prin to $uploadDir = "../images/".$hotelid."/";

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

$oldumask = umask&#40;0&#41;; 
mkdir&#40;"../images/$hotelid", 0777,true&#41;;
umask&#40;$oldumask&#41;;

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

δημιουργία folder για κάθε upload

Δημοσίευση από dtravlos » 21 Ιουν 2010 18:16

Καλησπέρα! Μετά από αρκετές ημέρες κατάφερα να το κοιτάξω! Φίλε fafo το δοκίμασα και δεν μου δημιουργεί νέο φάκελο! Τι μπορεί να κάνω λάθος;;; Ευχαριστώ!!!

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

δημιουργία folder για κάθε upload

Δημοσίευση από fafos » 21 Ιουν 2010 19:28

dtravlos έγραψε:Καλησπέρα! Μετά από αρκετές ημέρες κατάφερα να το κοιτάξω! Φίλε fafo το δοκίμασα και δεν μου δημιουργεί νέο φάκελο! Τι μπορεί να κάνω λάθος;;; Ευχαριστώ!!!
o fakelos images exei chmod = 777?

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

δημιουργία folder για κάθε upload

Δημοσίευση από dtravlos » 22 Ιουν 2010 01:07

Ναί κανονικά!

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

δημιουργία folder για κάθε upload

Δημοσίευση από fafos » 22 Ιουν 2010 01:19

to path (../images) einai sosto? an h selida pou trexeis to kodka einai ston idio fakelo me to images den xreiazetai to ../

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

δημιουργία folder για κάθε upload

Δημοσίευση από dtravlos » 22 Ιουν 2010 11:06

Σωστό είναι... Απλά δεν μπορώ να καταλάβω γιατί δεν το κάνει!! Υπάρχει περίπτωση να φταίει ο Plesk?

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

δημιουργία folder για κάθε upload

Δημοσίευση από fafos » 22 Ιουν 2010 16:16

dtravlos έγραψε:Σωστό είναι... Απλά δεν μπορώ να καταλάβω γιατί δεν το κάνει!! Υπάρχει περίπτωση να φταίει ο Plesk?
kane mia dokimh... vale ton kodika mono tou se ena arxeio php (p.x. test.php) kai anevase ton mesa ston fakelo images.. trekse apo ton browser to arxeio kai des an sou feiaxnei fakello me to onoma test:

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

<?
$oldumask = umask&#40;0&#41;;
mkdir&#40;"test", 0777,true&#41;;
umask&#40;$oldumask&#41;; 
?>

dtravlos
Δημοσιεύσεις: 244
Εγγραφή: 29 Ιαν 2009 15:03
Τοποθεσία: Keratsini
Επικοινωνία:

δημιουργία folder για κάθε upload

Δημοσίευση από dtravlos » 23 Ιουν 2010 12:22

Επιτέλους δούλεψε!!(ο πρωτος τρόπος)... Αλλά το έκανα με άλλο τρόπο τελικά! Έκανα ένα αρχειάκι μες στο images και έκανα select όλες τις καταχωρήσεις και του έβαλα να φτιάχνει κατάλογο για κάθε id.. Και στην εικόνα έβαλα κανονικά να την στέλνει στο φάκελο με το id που έχει η καταχώρηση! Thank for the help!

Απάντηση

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

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

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