Tengo una imagen a la que aplico filtros con un plugin de jQuery llamado Vintage.js
El caso es que lo que quiero es a través de AJAX crear una nueva imagen con una string en Base64 que es la imagen editada.
Paso a través de AJAX la string a un script PHP donde la decodifico y con file_put_contents creo una imagen nueva.
El problema es que en local va genial pero a la hora de subirlo al servidor remoto el script php me crea la imagen pero con 0 bytes y no se me abre.
Esta es la llamada AJAX (con jQuery):
Código Javascript :
$.ajax({
url : 'decode.php',
data : {'imagen':encodeURIComponent(imagen),'file':'airsoft'},
type : 'post',
error : function(a,b,c) {
alert(c);
},
success : function (data) {
console.log('Data = '+data);
subeImagen(data,'airsoft');
}
})
Este es el script:
Código PHP :
<?php header("Content-type:image/jpeg");
$imagen = urldecode($_POST["imagen"]);
$file = $_POST["file" ];
$arrayImg = explode(",",$imagen);
$base64string = $arrayImg[sizeof($arrayImg)-1];
$newImagen = base64_decode($imagen);
$abrir = fopen($file.".jpg","w");
fputs( $abrir , base64_decode($base64string));
fclose($abrir);
//file_put_contents($file.".jpg", base64_decode($base64string));
echo $file.".jpg";
die();
exit();
;?>
¿Alguien me puede quitar el dolor de cabeza diciéndome por qué sucede esto y como solucionarlo?
Es para un cliente y debo entregarlo ya. Muchas Gracias.
