Αποθήκευση εικόνων

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

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

Απάντηση
prokopios
Δημοσιεύσεις: 155
Εγγραφή: 17 Φεβ 2006 15:47

Αποθήκευση εικόνων

Δημοσίευση από prokopios » 10 Οκτ 2009 17:35

Γεια σας,
φτιάχνω μια σελίδα στην οποία θέλω να ανεβάζω εικόνες.

Θα ήθελα να εμφανίζω στην αρχική σελίδα μια εικόνα που θα ανεβάζω καθημερινά.
Και οι 10 τελευταίες εικόνες που θα ανεβάζω να υπάρχουν σε μια άλλη σελίδα (να μη σβήνονται δηλαδή) κατά αντίστροφη σειρά που τις ανέβασα (δηλαδή η τελευταία που έφυγε από την κεντρική να την εμφανίζει πρώτη).

Πως μπορώ να κάνω κάτι τέτοιο ?

Για παράδειγμα χρησιμοποιώ ένα upload κατά το οποίο ανεβάζω την εικόνα σε έναν φάκελο έστω εικόνα_ημέρας , μετά πως να αντιγράφω τις εικόνες σε έναν προσωρινό φάκελο ?
Πρέπει να αποθηκεύσω σε βάση ?


Έχω μπερδευτεί αν μπορεί κάποιος να με βοηθήσει . .
Ευχαριστώ

Υ.Γ. : Το θέμα το έγραψα εδώ γιατί μπορεί να χρειαστεί να ανεβάσω κώδικα σε php.
ΑΥΤΑ!!!

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

Αποθήκευση εικόνων

Δημοσίευση από Banavas » 11 Οκτ 2009 10:34

Για να μπορείς να διαχειρίζεσαι εύκολα τις εικόνες και να κάνεις και ότι κόλπα θέλεις πρέπει κατά το ανέβασμα να δημιουργείς και μία εγγραφή σε ένα πίνακα από μια βάση δεδομένων.
'Ετσι μπορείς να κρατάς και άλλα στοιχεία όπως κατηγορίες, πότε έγινε το ανέβασμα της φωτογραφίας, πόσες εμφανίσεις της φωτογραφίς έγιναν, ποιος χρήστης την ανέβασε, σχόλια για τις φωτογραφίες από χρήστες και ότι άλλο φανταστείς.

Εφόσον κρατάς σε βάση τα στοιχεία της φωτογραφίας όπως αναφέρω παραπάνω κάνεις μια αναζήτηση στη βάση κατά ημερομηνία εγγραφής (ORDER BY reg_date DESC) και βάζεις την LIMIT για να πάρεις όσες εγγραφές θέλεις.
Happy coding....
Μάρκος
http://lasernet.gr

prokopios
Δημοσιεύσεις: 155
Εγγραφή: 17 Φεβ 2006 15:47

Αποθήκευση εικόνων

Δημοσίευση από prokopios » 11 Οκτ 2009 12:45

Ευχαριστώ πάρα πολύ Banavaγια τη βοήθεια!

ΝΑ Ρωτήσω κάτι άλλο τώρα έχω ένα αρχείο upload.php στο οποίο έχω μια φόρμα για να ανεβάσω εικόνα : <input id="file" type="file" name="file">

και άλλο ένα που επεξεργάζεται τη φόρμα :

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

<?php  
$directory_self = str_replace&#40;basename&#40;$_SERVER&#91;'PHP_SELF'&#93;&#41;, '', $_SERVER&#91;'PHP_SELF'&#93;&#41;;
$uploadsDirectory = 'uploaded_files/';
$uploadForm = 'upload.form.php';
$uploadSuccess = 'upload.success.php';
$fieldname = 'file';

$errors = array&#40;1 => 'php.ini max file size exceeded', 
                2 => 'html form max file size exceeded', 
                3 => 'file upload was only partial', 
                4 => 'no file was attached'&#41;;


isset&#40;$_POST&#91;'submit'&#93;&#41;
	or error&#40;'the upload form is neaded', $uploadForm&#41;;


&#40;$_FILES&#91;$fieldname&#93;&#91;'error'&#93; == 0&#41;
	or error&#40;$errors&#91;$_FILES&#91;$fieldname&#93;&#91;'error'&#93;&#93;, $uploadForm&#41;;
	

@is_uploaded_file&#40;$_FILES&#91;$fieldname&#93;&#91;'tmp_name'&#93;&#41;
	or error&#40;'not an HTTP upload', $uploadForm&#41;;
	
@getimagesize&#40;$_FILES&#91;$fieldname&#93;&#91;'tmp_name'&#93;&#41;
	or error&#40;'only image uploads are allowed', $uploadForm&#41;;
	
$now = time&#40;&#41;;
while&#40;file_exists&#40;&#91;b&#93;$uploadFilename = $uploadsDirectory.'Image - '.$now.'.jpeg'&#91;/b&#93;&#41;&#41;
&#123;
	$now++;
&#125;

$con = mysql_connect&#40;"localhost","root",""&#41;;
if &#40;!$con&#41;
  &#123;
  die&#40;'Could not connect&#58; ' . mysql_error&#40;&#41;&#41;;
  &#125;
mysql_select_db&#40;"dbname", $con&#41;;


$query = "INSERT INTO images &#40;name&#41; VALUES &#40;'$_FILES&#91;$fieldname&#93;&#91;'name'&#93;'&#41;";
mysql_query&#40;$query&#41; or die&#40;'Error, insert query failed'&#41;;


@move_uploaded_file&#40;$_FILES&#91;$fieldname&#93;&#91;'tmp_name'&#93;, $uploadFilename&#41;
	or error&#40;'receiving directory insuffiecient permission', $uploadForm&#41;;
	
header&#40;'Location&#58; ' . $uploadSuccess&#41;;

function error&#40;$error, $location, $seconds = 5&#41;
&#123;
	header&#40;"Refresh&#58; $seconds; URL=\"$location\""&#41;;
	echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'."\n".
	'"http&#58;//www.w3.org/TR/html4/strict.dtd">'."\n\n".
	'<html lang="en">'."\n".
	'	<head>'."\n".
	'		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">'."\n\n".
	'		<link rel="stylesheet" type="text/css" href="stylesheet.css">'."\n\n".
	'	<title>Upload error</title>'."\n\n".
	'	</head>'."\n\n".
	'	<body>'."\n\n".
	'	<div id="Upload">'."\n\n".
	'		<h1>Upload failure</h1>'."\n\n".
	'		<p>An error has occured&#58; '."\n\n".
	'		<span class="red">' . $error . '...</span>'."\n\n".
	'	 	The upload form is reloading</p>'."\n\n".
	'	 </div>'."\n\n".
	'</html>';
	exit;
&#125; 
?>
Αλλά δεν κάνει εισαγωγή στη βάση μου , τι κάνω λάθος ?
Η βάση αποτελείται από 3 πεδία ένα id, name και type.

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

Μπορεί κάποιος να βοηθήσει ?
Ευχαριστώ και πάλι
ΑΥΤΑ!!!

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Αποθήκευση εικόνων

Δημοσίευση από Apostolis_38 » 11 Οκτ 2009 13:03

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

$query = "INSERT INTO images &#40;name&#41; VALUES &#40;'$_FILES&#91;$fieldname&#93;&#91;'name'&#93;'&#41;";
εδώ δεν θα έπρεπε να βάζει και τα id και type;

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

$query = "INSERT INTO images &#40;name&#41; VALUES &#40;'$id','$_FILES&#91;$fieldname&#93;&#91;'name'&#93;','$type'&#41;";

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

Αποθήκευση εικόνων

Δημοσίευση από Banavas » 11 Οκτ 2009 13:13

βάλε το or die(mysql_error()) στο παρακάτω για να δείς το λάθος σου.
Θα σου βγάλει μήνυμα οτι δεν ταιριάζουν οι στήλες της βάσης.

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

$query = "INSERT INTO images &#40;name&#41; VALUES &#40;'$_FILES&#91;$fieldname&#93;&#91;'name'&#93;'&#41;or die&#40;mysql_error&#40;&#41;&#41;"; 
Πρέπει να γίνει όπως το δίνει ο Αποστόλης. Το id αν είναι αυτόματο άστο κενό. (΄΄,
Happy coding....
Μάρκος
http://lasernet.gr

prokopios
Δημοσιεύσεις: 155
Εγγραφή: 17 Φεβ 2006 15:47

Αποθήκευση εικόνων

Δημοσίευση από prokopios » 11 Οκτ 2009 14:07

Ευχαριστώ πολύ για τις απαντήσεις!!
ΑΥΤΑ!!!

Απάντηση

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

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

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