2009-10-07 18 views

Respuesta

34

Mi mejor versión es que solo necesita llamar al base64_decode() en $_REQUEST['data'] antes de escribirlo en el archivo. Eso debería ser suficiente :)

+3

suspiro, que era bastante fácil, debería haber hecho que antes de hacer la pregunta! Gracias. – mmattax

6

Creo que querría decodificar con base64_decode() a menos que solo lo esté usando como están aquí HERE.

Lo que sí estoy seguro es que tendrá que desinfectar $ _REQUEST [ 'id'] antes de usarlo.

+0

desafiante va a desinfectar, tratando de ser simplista ... – mmattax

38

Debe usar base64_decode(). Y. Algunas veces no es suficiente. Aquí está todo el código que necesita:

$img = $_POST['data']; 
$img = str_replace('data:image/png;base64,', '', $img); 
$img = str_replace(' ', '+', $img); 
$fileData = base64_decode($img); 
//saving 
$fileName = 'photo.png'; 
file_put_contents($fileName, $fileData); 

P.S. Usé este código para obtener una imagen PNG desde html canvas.

+0

obtenido un error debido a esto: Permitido el tamaño de la memoria de 134217728 bytes agotado (trataron de asignar 24 bytes). Por cierto, yo uso el código para tratar de obtener una imagen PNG de ToDataURL (usando JavaScript) de un lienzo. – Kelsey

+0

¿Puede proporcionar más detalles? ¿Qué crees que está causando exactamente tu error? ¿Por qué? Gracias. –

+1

Esta debería ser la respuesta aceptada. – CristiC

Cuestiones relacionadas