In het verleden heb ik vaak base64-conversie naar afbeeldingen gedaan, en daar was nooit een probleem. Vandaag heb ik js gebruikt om Canvas om te zetten naar Base64-bit strings
BBB is de string die we krijgen, en dan geef ik die door naar de achtergrond met ajax, zo:
Achtergrond ontvangstcode:
Verdorie, de tweede zin werd verkeerd gerapporteerd!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Foutenlijst
{"De invoer is geen geldige Base-64-string omdat deze een niet-base 64-teken, meer dan twee opvultekens, of een illegaal teken tussen de opvultekens bevat. "} {"Ongeldige lengte voor een Base-64 char array of string."} De eerste fout komt doordat er data:image/jpeg in de string zit; base64, doe dat ding gewoon weg!
Deze code lost de eerste fout op!!
De tweede fout, ik weet niet wat er aan de hand was, ik heb een uur gewerkt en zag uiteindelijk een paar woorden van het buitenlandersforum
De lengte van een base64-gecodeerde string is altijd een veelvoud van 4. Als het geen veelvoud van 4 is, dan worden = tekens toegevoegd totdat het wel zo is. Een querystring van de vorm ?name=value heeft problemen wanneer de waarde = karakters bevat (sommige worden weggelaten, ik herinner me het exacte gedrag niet). Je kunt misschien het juiste aantal = tekens toevoegen voordat je de base64-decode doet. De vertaling is als volgt, kijk er maar globaal naar
Een Base64-gecodeerde string is een veelvoud van 4 in lengte. Als het geen veelvoud van 4 is, dan wordt het =-teken toegevoegd tot. Een querystring voor een tabel? naam=waarde wanneer er een probleem is met waarde bevat = kenmerken (sommige daarvan zullen dalen, ik weet het exacte gedrag niet meer). Je kunt het juiste getal = karakter toevoegen voordat je base64-decodering doet. Voeg tenslotte een paar zinnen code toe en je bent klaar, de volledige code is als volgt:
|