background image

Χριστοφορίδης Ιωάννης Ραφαήλ 

Σχεδιασμός πληροφοριακού συστήματος διαχείρισης μητρώου 

υλικών 

 

 

53 

 

Καταρχάς,  στο  html  μέρος  του  κώδικα,  η  φόρμα  πρέπει  να  έχει  την  μορφή 

enctype="multipart/form-data", ώστε να μπορεί να δεχθεί δεδομένα (εικόνα). Όταν ο χρήστης 
ανεβάσει  την  εικόνα  μπορούμε  να  την  επεξεργαστούμε.  Αρχικά  ελέγχουμε  αν  αυτό  που 
έστειλε  ο  χρήστης  είναι  εικόνα  από  τον  υπολογιστή  του  ή  url  με  την  εικόνα  (εκεί  δεν  την 
ανεβάζουμε  στον  server).  Αφού  γίνει  αυτό  ελέγχουμε  αν  είναι  αποδεκτός  τύπος  εικόνας.  Οι 
αποδεκτοί τύποι είναι: gif, jpeg, bmp, jpg, png 
 

Εφόσον  γίνουν  οι  απαραίτητοι  έλεγχοι,  ορίζουμε  το  όνομα  με  το  οποίο  θα  ανέβει  η 

εικόνα.  Το  format  που  χρησιμοποιεί  το  σύστημα  είναι  dximage  +  ένα  αλφαριθμιτικό  που 
εξάγει η php ανάλογα με την ώρα 
ένα κομμάτι από το hash του ονόματος του πεδίου που 
είναι  να  μπει
.  Αυτό  γίνεται  για  να  μην  υπάρχουν  2  εικόνες  με  το  ίδιο  όνομα.  Στην  συνέχεια 
αποθηκεύεται  με  την  κατάληξη  n  (normal)  και  προχωράμε  στην  δημιουργία  thumbnail.  Ο 
κώδικας  αναλύει  προσεκτικά  τις  διαστάσεις  και  αναλογίες  της  εικόνας.  Ανάλογα  με  το  ύψος 
και  το  μήκος  της,  την  διαμορφώνει  κατάλληλα,  ώστε  να  έχει  μέγιστο  ύψος  100  pixels  και 
μέγιστο  μήκος  100  pixels.  Τέλος  αποθηκεύει  και  το  thumbnail  με  κατάληξη  t.  Το  thumbnail 
δημιουργείται για να γίνεται γρηγορότερη η φόρτωση των εικόνων όταν ο χρήστης βλέπει ένα 
ή περισσότερα αντικείμενα. Βέβαια, αν ο χρήστης θελήσει να δει ολόκληρη την εικόνα μπορεί 
να  πατήσει  πάνω  στο  thumbnail  και  να  μεταβεί  εκεί  που  βρίσκεται  η  κανονική  εικόνα.  Σε 
περίπτωση  που  ο  χρήστης  βάλει  κάποιο  λάθος  πεδίο,  όλες  οι  ανεβασμένες  εικόνες  στην 
φόρμα αυτή πρέπει να διαγραφούν, από όπου βγαίνει και η συνάρτηση learntoread

function learntoread(){global $damnnoob,$nowihavetodeletethem; 

if($damnnoob==0){return;} 

for($x=1;$x<=$damnnoob;$x++){$todelete=$nowihavetodeletethem[$x]; 

$pieces = explode(".", $todelete); 

if($pieces[1]=="zip"){unlink('files/'.$todelete);}else{$proxnormal=$pieces[0]."n.".$pieces[1]; 

$proxthumb=$pieces[0]."t.jpeg"; 

unlink('upload/'.$proxnormal); 

unlink('upload/'.$proxthumb);}}return;} 

 

Εδώ χρησιμοποιούνται οι global μεταβλητές που σε αυτές είναι αποθηκευμένες τα 

στοιχεία των εικόνων που μόλις ανέβηκαν. Ο κώδικας τις διαγράφει με την εντολή unlink.