Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Αποθήκευση εικόνας σε βάση MySQL 5.1

Îåêßíçóå áðü ôï ìÝëïò Dataman. Τελευταία δημοσίευση από το μέλος cap στις 09-01-2009, 13:09. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-01-2009, 04:00 47492

    Αποθήκευση εικόνας σε βάση MySQL 5.1

    Αντιμετωπίζω ένα προβλημα σχετικά με την καταχώρηση εικόνας στην βάση και θα ήθελα τα φωτα σας

    Στην βάση το πεδίο που θα δεχτεί την εικόνα είναι τύπου longblob
    Στην εφαρμογή μετατρέπω την εικόνα σε base64 (μετατρέπω την εικόνα σε string)

    Το πρόβλημα είναι ότι ενώ το μήκος του string (της εικόνας που θέλω να αποθηκεύσω) είναι 4.000.000 χαρακτήρες περίπου, κατά την αποθήκευση στην βάση μου εμφανίζει το εξής μήνυμα:
    Packets larger than max_allowed_packet are not allowed ενω ο τυπος longblob μπορεί να δεχτεί 4.294.967.295 χαρακτήρες

    Τι συμβαίνει, γνωρίζει κανείς;

    Ευχαριστώ
  •  08-01-2009, 18:27 47513 σε απάντηση της 47492

    Απ: Αποθήκευση εικόνας σε βάση MySQL 5.1

    Το μήνυμα είναι αρκετά σαφές. Δοκίμασες να στείλεις με τη μία περισσότερα δεδομένα απ' όσα δέχεται ο MySQL server. Θα πρέπει να δεις πόσο είναι το μέγεθος του max_allowed_packet και να το αλλάξεις, ή να μεταφέρεις τα δεδομένα σταδιακά.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-01-2009, 19:20 47515 σε απάντηση της 47513

    Απ: Αποθήκευση εικόνας σε βάση MySQL 5.1

    Απο ο,τι διαβάζω, μπορεί ο τύπος longblog να δέχεται μεγαλύτερο όγκο δεδομένων από όσο στέλνεις, όμως το max_allowed_packet είναι μια παράμετρος της MySQL που ορίζει πόσο είναι το μέγιστο μέγεθος δεδομένων που μπορεί ανά πάσα στιγμή να μεταφερθεί. Αν αυτή είναι χαμηλότερη από το μέγεθος του αρχείου σου, είναι λογικό να τρως αυτό το error, που δεν έχει να κάνει με τον τύπο του πεδίου αλλά με γενικότερο περιορισμό.

    Το καλό είναι οτι μπορείς να το αλλάξεις (ή να ζητήσεις να στο αλλάξουν). Δες εδώ: http://www.astahost.com/info.php/Max_allowed_packet-Mysql_t2725.html
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  09-01-2009, 11:55 47533 σε απάντηση της 47515

    Απ: Αποθήκευση εικόνας σε βάση MySQL 5.1

    Σωστά το μύνημα είναι αρκετά σαφές, αλλά ποιος είναι ο λόγος να υπάρχει ο περιορισμός εφόσον το πεδίο μπορεί να χωρέσει περισσότερα στοιχεία.

    Επίσης εάν μεταφέρω την βάση δεδομένων σε άλλον MySQL Server, θα πρέπει να ξαναορίσω την μεταβλητή max_allowed_packet?
  •  09-01-2009, 13:09 47534 σε απάντηση της 47533

    Απ: Αποθήκευση εικόνας σε βάση MySQL 5.1

    Για αυτό, καλύτερα να απευθυνθείς σε αυτούς που έφτιαξαν τη MySQL :). Αν και καταλαβαίνω οτι το max_allowed_packet αφορά το συνολικό όγκο των δεδομένων που θα σπρωχτούν "με τη μια" σε μια ενημέρωση της mySQL και όχι στα δεδομένα ενός μόνο πεδίου. Υπό αυτή την έννοια έχει νόημα ως περιοριστικός παράγων (υποψιάζομαι οτι είναι χρήσιμο σε περίεργες "επιθέσεις" που επιχειρούν να γράψουν πράγματα στη MySQL).

    Πιστεύω οτι αν το μεταφέρεις ναι, θα πρέπει να την ξαναορίσεις.
    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems