Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

93
Visualizações
POST base64 png en solicitud XMLHTTP

Por alguna razón, esta información es imposible de encontrar una respuesta directa, he estado tratando de resolver esto durante más de una semana. ¡Así que por favor dé una respuesta útil solo!

Estoy guardando la imagen canvas.toDataUrl en el servidor con los siguientes pasos:

JAVASCRIPT

 function captureCanvas(){ html2canvas(displayScreen).then(canvas =>{ postPicture(canvas.toDataURL()); }) } function postPicture(data){ let xhr = new XMLHttpRequest(); xhr.onload = function (){ if (this.status == 200){ let result = document.getElementById('result-pic'); console.log('this is the response:'+this.response); result.src = this.response; } } xhr.open('POST', 'storeImage.php', true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send('image='+data); }

Luego, tratando de almacenarlo con el lado del servidor/mostrar el resultado nuevamente en el archivo html: PHP

 $baseFromJavascript = $_POST['image']; $data = base64_decode(preg_replace('#^data:image/w+;base64,#i', '', $baseFromJavascript)); $filepath = "./upload/image.png"; file_put_contents($filepath,$data); echo $baseFromJavascript;

Ni se abre como una imagen localmente ni se muestra en html , aunque el html img tiene los datos base64 .

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Tienes que hacer algunos cambios en Javscript así como en PHP

Codifique sus datos en JS para que la solicitud se envíe correctamente

 function captureCanvas(){ html2canvas(displayScreen).then(canvas =>{ postPicture(canvas.toDataURL()); }) } function postPicture(data){ let xhr = new XMLHttpRequest(); xhr.onload = function (){ if (this.status == 200){ let result = document.getElementById('result-pic'); console.log('this is the response:'+this.response); result.src = this.response; } } xhr.open('POST', 'storeImage.php', true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send('image='+encodeURIComponent(data)); }

Cambie su script php como se muestra a continuación:

 $baseFromJavascript = $_POST['image']; $data = $baseFromJavascript; list($type, $data) = explode(';', $data); list(, $data) = explode(',', $data); $data = base64_decode($data); $filepath = "./upload/image.png"; file_put_contents($filepath,$data); echo $baseFromJavascript;
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda