Στο παρελθόν, έκανα συχνά μετατροπή base64 σε εικόνες και δεν υπήρξε ποτέ κανένα πρόβλημα. Σήμερα, χρησιμοποίησα το js για να μετατρέψω το Canvas σε συμβολοσειρές Base64-bit
bbb είναι η συμβολοσειρά που παίρνουμε, και μετά την περνάω στο παρασκήνιο με ajax, έτσι.
Κωδικός λήψης παρασκηνίου:
Γαμώτο, η δεύτερη πρόταση αναφέρθηκε λανθασμένα!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Λίστα σφαλμάτων
{"Η είσοδος δεν είναι έγκυρη συμβολοσειρά Base-64 καθώς περιέχει έναν χαρακτήρα που δεν είναι βάση 64, περισσότερους από δύο χαρακτήρες συμπλήρωσης ή έναν παράνομο χαρακτήρα μεταξύ των χαρακτήρων συμπλήρωσης. "} {"Μη έγκυρο μήκος για έναν πίνακα χαρακτήρων Base-64 ή συμβολοσειρά."} Το πρώτο σφάλμα είναι επειδή, υπάρχουν δεδομένα:image/jpeg στη συμβολοσειρά. base64, απλά ξεφορτωθείτε αυτό το πράγμα!
Αυτός ο κωδικός λύνει το πρώτο σφάλμα!!
Το δεύτερο λάθος, δεν ξέρω τι έφταιγε, δούλεψα μια ώρα και τελικά είδα λίγα λόγια από το φόρουμ των ξένων
Το μήκος μιας κωδικοποιημένης συμβολοσειράς base64 είναι πάντα πολλαπλάσιο του 4. Εάν δεν είναι πολλαπλάσιο του 4, τότε = χαρακτήρες προστίθενται μέχρι να γίνει. Μια συμβολοσειρά ερωτήματος της μορφής ?name=value έχει προβλήματα όταν η τιμή περιέχει = χαρακτήρες (μερικοί από αυτούς θα απορριφθούν, δεν θυμάμαι την ακριβή συμπεριφορά). Ίσως μπορέσετε να ξεφύγετε με την προσθήκη του σωστού αριθμού = χαρακτήρων πριν κάνετε την αποκωδικοποίηση base64. Η μετάφραση έχει ως εξής, απλά ρίξτε μια ματιά σε αυτό περίπου
Μια κωδικοποιημένη συμβολοσειρά Base64 είναι πολλαπλάσιο του μήκους 4. Εάν δεν είναι πολλαπλάσιο του 4, τότε ο χαρακτήρας = προσαρτάται μέχρι. Μια συμβολοσειρά ερωτήματος για έναν πίνακα; name=value όταν υπάρχει πρόβλημα με την τιμή περιέχει = χαρακτηριστικά (μερικά από αυτά θα πέσουν, δεν θυμάμαι την ακριβή συμπεριφορά). Μπορείτε να προσθέσετε τον σωστό αριθμό = χαρακτήρα πριν κάνετε αποκωδικοποίηση base64. Τέλος, προσθέστε μερικές προτάσεις κώδικα και τελειώσατε, ο πλήρης κώδικας έχει ως εξής:
|