Espero me puedan ayudar. Estoy pasando información de un documento javascript (concretamente un canvas convertido a png) a php para que me guarde la imagen en el servidor. Todo funciona bien hasta que intento que el nombre del png sea el mismo de la página de origen.
Lo que funciona bien es lo siguiente:
Código Javascript :
function guardar(){ var canvas = document.getElementById("lafirma"); var screenshot = Canvas2Image.saveAsPNG(canvas, true); document.getElementById('imagen').src = canvas.toDataURL("image/png"); data = $('#imagen').attr('src'); var url = 'js/export.php'; $.ajax({ type: "POST", url: url, dataType: 'text', data: { base64data : data } });
Código PHP :
$data = $_POST['base64data']; $image = explode('base64,',$data); $fichero = '../firmas/img.png'; file_put_contents($fichero, base64_decode($image[1]));
Lo que no funciona:
Código Javascript :
function guardar(){ var documento = nombreArchivo(); var canvas = document.getElementById("lafirma"); var screenshot = Canvas2Image.saveAsPNG(canvas, true); document.getElementById('imagen').src = canvas.toDataURL("image/png"); data = $('#imagen').attr('src'); var url = 'js/export.php'; $.ajax({ type: "POST", url: url, dataType: 'text', data: { base64data : data, nombre : documento } });
Código PHP :
$data = $_POST['base64data']; $nombre = $_POST['nombre']; $image = explode('base64,',$data); $ruta = '../firmas/'.$nombre.'.png'; file_put_contents($ruta, base64_decode($image[1]));
En este caso me guarda el archivo pero sin nombre solo con la extensión. He comprobado que en documento está bien puesto el nombre del archivo (un alert me muestra el nombre del documento html al que llamo en otro javascirpt y me detecta el nombre y me lo devuelve)
He probado a poner
Código Javascript :
... $.ajax({ type: "POST", url: url, dataType: 'text', data: "base64data:"+data+"&nombre="+documento
pero tampoco ha funcionado. De esta forma, de hecho, no hace nada