PHP Data-URI para arquivo: resolvendo problemas de imagem corrompida
Mantendo a integridade dos dados de imagem durante a conversão de Data-URI para formato de arquivo é crucial. Um desafio comum encontrado ao usar a função file_put_contents do PHP para salvar dados de uma chamada JavaScript canvas.toDataURL() é a corrupção da imagem resultante. O problema decorre da presença de espaços em branco no Data-URI.
A documentação do PHP fornece uma solução direta para este problema:
$encodedData = str_replace(' ', ' ', $encodedData);
$decodedData = base64_decode($encodedData);
Ao substituir espaços em branco por sinais de mais, os dados decodificados são reconstruídos corretamente, garantindo que o arquivo de imagem não esteja corrompido.
No seu caso específico, você estávamos trabalhando com um Data-URI contendo uma imagem PNG. Veja como você pode incorporar a solução em seu código:
// Get the base64-encoded URI data from JavaScript
$data = $_POST['logoImage'];
// Remove the leading "data:image/png;base64," part
$uri = substr($data, strpos($data, ',') 1);
// Replace any whitespace with a plus
$uri = str_replace(' ', ' ', $uri);
// Decode the base64-encoded data
$decodedData = base64_decode($uri);
// Save the decoded data to a file with the specified name
file_put_contents($_POST['logoFilename'], $decodedData);
Seguindo esta abordagem, você pode salvar com êxito o Data-URI como um arquivo PNG não corrompido.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3