Προγραμματισμός

Γνώση Υπολογιστών >> Προγραμματισμός >  >> PHP /MySQL Προγραμματισμός

Πώς εισάγετε αρχεία σε μια βάση δεδομένων χρησιμοποιώντας PHP;

`` `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.

- μεγάλα αρχεία: Για τον χειρισμό μεγάλων αρχείων, εξετάστε τη χρήση τεχνικών όπως το κομμάτι ή τις μεταφορτώσεις ροής.

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα