Php
// διαπιστευτήρια βάσης δεδομένων
$ servername ="localHost";
$ username ="όνομα χρήστη";
$ password ="κωδικός πρόσβασης";
$ dbname ="myDatabase";
// Δημιουργία σύνδεσης
$ conn =νέο mysqli ($ servername, $ username, $ password, $ dbname);
// Ελέγξτε τη σύνδεση
αν ($ conn-> connect_error) {
die ("Η σύνδεση απέτυχε:" $ conn-> connect_error);
}
// Λεπτομέρειες μεταφόρτωσης αρχείων
$ target_dir ="uploads/";
$ target_file =$ target_dir. baseName ($ _ αρχεία ["filetOuPload"] ["όνομα"]);
$ uploadok =1;
$ imageFileType =strtolower (pathInfo ($ target_file, pathinfo_extension));
// Ελέγξτε εάν το αρχείο εικόνας είναι μια πραγματική εικόνα ή ψεύτικη εικόνα
αν (isset ($ _ post ["υποβολή"])) {
$ check =getImagesize ($ _ αρχεία ["filetOuPload"] ["tmp_name"]);
αν ($ check! ==false) {
echo "Το αρχείο είναι μια εικόνα -". $ check ["mime"]. ".";
$ uploadok =1;
} αλλιώς {
echo "Το αρχείο δεν είναι εικόνα".
$ uploadok =0;
}
}
// Ελέγξτε εάν υπάρχει ήδη αρχείο
αν (file_exists ($ target_file)) {
Echo "Συγγνώμη, υπάρχει ήδη αρχείο.";
$ uploadok =0;
}
// Ελέγξτε το μέγεθος του αρχείου
αν ($ _files ["filetOuPload"] ["μέγεθος"]> 500000) {
echo "Συγγνώμη, το αρχείο σας είναι πολύ μεγάλο.";
$ uploadok =0;
}
// Αφήστε ορισμένες μορφές αρχείων
αν ($ imageFileType! ="jpg" &&$ imageFiletype! ="png" &&$ imageFiletype! ="jpeg"
&&$ imageFileType! ="gif") {
echo "Συγγνώμη, επιτρέπονται μόνο αρχεία JPG, JPEG, PNG &GIF.";
$ uploadok =0;
}
// Ελέγξτε αν το $ uploadok έχει οριστεί σε 0 με σφάλμα
αν ($ uploadok ==0) {
Echo "Συγγνώμη, το αρχείο σας δεν φορτώθηκε.";
// Εάν όλα είναι εντάξει, προσπαθήστε να ανεβάσετε αρχείο
} αλλιώς {
αν (move_uploaded_file ($ _ αρχεία ["fileTouPload"] ["tmp_name"], $ target_file)) {
Echo "Το αρχείο". BASENAME ($ _Files ["fileToupload"] ["Όνομα"]). "Έχει μεταφορτωθεί.";
// Εισαγωγή λεπτομερειών αρχείου στη βάση δεδομένων
$ όνομα αρχείου =baseName ($ _ αρχεία ["filetOuPload"] ["όνομα"]);
$ file_path =$ target_file;
$ sql ="Εισαγωγή σε αρχεία (όνομα αρχείου, file_path) Τιμές ('$ όνομα αρχείου', '$ file_path')";
αν ($ conn-> query ($ sql) ===true) {
echo "νέο ρεκόρ δημιουργήθηκε με επιτυχία"?
} αλλιώς {
Echo "Σφάλμα:". $ SQL. «
"$ conn-> σφάλμα;
}
} αλλιώς {
Echo "Συγγνώμη, υπήρχε ένα σφάλμα που ανεβάζει το αρχείο σας.";
}
}
$ conn-> close ();
>>
`` `
Επεξήγηση:
1. Ρύθμιση βάσης δεδομένων:
- Δημιουργήστε μια σύνδεση με τη βάση δεδομένων MySQL χρησιμοποιώντας την επέκταση `MySqli`.
- Αντικαταστήστε τους θέσεις θέσης όπως το `username`, το` password 'και το `myDatabase' με τα πραγματικά διαπιστευτήρια βάσης δεδομένων σας.
2. Χειρισμός μεταφόρτωσης αρχείων:
- Χρησιμοποιήστε τον πίνακα SuperGlobal `$ _Files` για να αποκτήσετε πρόσβαση σε πληροφορίες σχετικά με το αρχείο που έχει μεταφορτωθεί.
- Ρυθμίστε έναν κατάλογο -στόχο (`$ target_dir`) όπου θα αποθηκευτεί το αρχείο.
- Εκτελέστε βασική επικύρωση:
- Ελέγξτε εάν το αρχείο που έχει μεταφορτωθεί είναι μια πραγματική εικόνα (χρησιμοποιώντας το `getImagesize ').
- Ελέγξτε εάν υπάρχει ήδη το αρχείο στον κατάλογο προορισμού.
- Ελέγξτε εάν το μέγεθος του αρχείου είναι εντός επιτρεπόμενων ορίων.
- Αφήστε μόνο ορισμένες μορφές αρχείων (π.χ. JPG, PNG, GIF).
3. Αποθήκευση αρχείων:
- Εάν η επικύρωση περάσει, χρησιμοποιήστε `move_uploaded_file` για να μετακινήσετε το προσωρινό αρχείο που μεταφορτώθηκε στον κατάλογο προορισμού.
4. Εισαγωγή βάσης δεδομένων:
- Μετά την επιτυχή αποθήκευση του αρχείου, προετοιμάστε ένα ερώτημα SQL για να εισαγάγετε τις πληροφορίες αρχείου στη βάση δεδομένων σας.
- Αυτό περιλαμβάνει συνήθως το όνομα αρχείου και τη διαδρομή προς το αρχείο.
- Χρησιμοποιήστε τη μέθοδο `$ conn-> query` για να εκτελέσετε το ερώτημα SQL.
Σημαντικές σημειώσεις:
- Ασφάλεια: Πάντα επικυρώνετε τις εισροές χρήστη και τις μεταφορτώσεις αρχείων για την πρόληψη των τρωτών σημείων ασφαλείας, όπως επιθέσεις XSS ή έγχυση αρχείων.
- Πίνακας βάσης δεδομένων: Βεβαιωθείτε ότι έχετε έναν κατάλληλο πίνακα βάσης δεδομένων για να αποθηκεύσετε πληροφορίες αρχείου (π.χ. πίνακας `αρχείων 'με στήλες όπως` filename`, `file_path`,` file_size` κ.λπ.).
- Χειρισμός σφαλμάτων: Χειριστείτε πιθανά σφάλματα κατά τη μεταφόρτωση αρχείων και την εισαγωγή βάσης δεδομένων. Εμφάνιση κατάλληλων μηνυμάτων στον χρήστη.
- Όρια μεγέθους αρχείου: Εξετάστε τη ρύθμιση των κατάλληλων ορίων μεγέθους αρχείου για την πρόληψη της υπερφόρτωσης του διακομιστή.
- Τύποι αρχείων: Μπορείτε να τροποποιήσετε τους επιτρεπόμενους τύπους αρχείων με βάση τις απαιτήσεις της εφαρμογής σας.
- Εξαγαλοποίηση δεδομένων: Αυγχώρησε το όνομα του αρχείου και άλλα δεδομένα πριν την αποθηκεύσετε στη βάση δεδομένων για να αποτρέψετε τις επιθέσεις έγχυσης SQL.
- μεγάλα αρχεία: Για τον χειρισμό μεγάλων αρχείων, εξετάστε τη χρήση τεχνικών όπως το κομμάτι ή τις μεταφορτώσεις ροής.
Θυμηθείτε να προσαρμόσετε αυτό το απόσπασμα κώδικα στο συγκεκριμένο σχήμα βάσης δεδομένων και τις απαιτήσεις μεταφόρτωσης αρχείων.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα