"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolver problemas de imagem corrompida ao converter URI de dados em arquivo em PHP?

Como resolver problemas de imagem corrompida ao converter URI de dados em arquivo em PHP?

Publicado em 2024-11-09
Navegar:798

How to Resolve Corrupted Image Issues When Converting Data-URI to File in PHP?

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.

Declaração de lançamento Este artigo foi reimpresso em: 1729644498 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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