Mam problemy z używaniem danych utworzonych za pomocą metody todataurl() canvas. Obecnie mój kod wysyła uzyskane dane do mojego serwera php, który wykorzystuje metodę file_put_contents() do utworzenia pliku do przechowywania tych danych. Teraz, jeśli wycinam wynikowy bełkot z pliku do src tagu graficznego, działa on poprawnie i wyświetla się poprawnie, więc zakładam, że do tej pory wszystko jest brzoskwiniowe.Dekodowanie obszaru roboczego todataURL
Ale wciąż napotykam na problemy, gdy próbuję użyć kodu w JS. Próbowałem już metody base64_decode php, ale ciągle dostaję się uciążliwe pliki. Znalazłem ten kod:
<?php
$encodedData = str_replace(' ','+',$encodedData);
$decocedData = base64_decode($encodedData);
i wciąż mam pliki currupted. Idealnie chciałbym utworzyć z nim plik .png, ale zdecydowałbym się na ponowne przetwarzanie pliku danych w JS. Każda pomoc bardzo doceniona.
Po prostu trzeba czytać typ MIME (prawdopodobnie stały/znany) i kodowania (prawdopodobnie brak) do interpretacji danych, który jest standardem Base64. Nie będzie żadnych spacji do zastąpienia, jeśli wcześniej zakodowano dane wejściowe. [PHP-FileUpload] (https://github.com/delight-im/PHP-FileUpload) ma ['DataUriUpload'] (https://github.com/delight-im/PHP-FileUpload/blob/023f812226673ac9e0696d8a3579bb7380606dda/ src/DataUriUpload.php), który wykonuje to wszystko automatycznie. Jest to udokumentowane [tutaj] (https://github.com/delight-im/PHP-FileUpload/tree/023f812226673ac9e0696d8a3579bb7380606dda#data-uri-uploads). – caw