Comunidad de diseño web y desarrollo en internet online

problema con varios parámetros $.ajax()

Citar            
MensajeEscrito el 28 Dic 2013 03:31 pm
Buenas tardes,

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

Por kary©

16 de clabLevel



Genero:Femenino  

Una más

chrome
Citar            
MensajeEscrito el 28 Dic 2013 03:54 pm
Me da hasta vergüenza decirlo..... ya está solucionado.... ya me vale...un error de novata, por estar agobiada....

Bueno ahí queda por si a alguien le vale... todo lo primero estaba bien, pero en la función que me devuelve el nombre del documento se me olvidó poner un return, claro al hacer el alert en la funcion me devolvía el nombre pero como lo llamo desde otro documento no le había puesto el return y no me devolvía nada jujuju....

Que vergüenza..... gracias igualmente!!!!!! u.u

Por kary©

16 de clabLevel



Genero:Femenino  

Una más

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.