Tôi gặp khó khăn khi sử dụng dữ liệu được tạo bằng phương thức todataurl() của canvas. Hiện tại mã của tôi gửi dữ liệu kết quả đến máy chủ php của tôi sử dụng phương thức file_put_contents() để tạo một tệp để lưu trữ dữ liệu đó. Bây giờ nếu tôi cắt và dán kết quả sai ngữ pháp từ tập tin vào một thẻ hình ảnh src nó hoạt động tốt và hiển thị đúng cách vì vậy tôi giả định cho đến nay tất cả mọi thứ là đào.Giải mã canvas todataURL
Nhưng tôi tiếp tục gặp sự cố khi cố gắng sử dụng mã trong JS. Tôi đã thử phương pháp base64_decode của php nhưng vẫn nhận được các tập tin currupt. Tôi đã tìm thấy mã này:
<?php
$encodedData = str_replace(' ','+',$encodedData);
$decocedData = base64_decode($encodedData);
và vẫn nhận các tệp bị gián đoạn. Lý tưởng nhất là tôi muốn tạo một tệp .png với nó nhưng tôi sẽ giải quyết để xử lý lại tệp dữ liệu trong JS. Bất kỳ trợ giúp đánh giá rất nhiều.
Bạn chỉ cần phải đọc kiểu MIME (có thể là cố định/biết) và mã hóa (có thể là không có) để giải thích các dữ liệu, đó là tiêu chuẩn Base64. Sẽ không có bất kỳ khoảng trống nào để thay thế nếu bạn đã mã hóa URL dữ liệu nhập trước đó. [PHP-FileUpload] (https://github.com/delight-im/PHP-FileUpload) có ['DataUriUpload'] (https://github.com/delight-im/PHP-FileUpload/blob/023f812226673ac9e0696d8a3579bb7380606dda/ src/DataUriUpload.php) thành phần thực hiện tất cả điều này một cách tự động. Tài liệu được mô tả [tại đây] (https://github.com/delight-im/PHP-FileUpload/tree/023f812226673ac9e0696d8a3579bb7380606dda#data-uri-uploads). – caw