Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 26 Octubre 2020, 18:39 PM

Título: [Pregunta]: ¿Cómo se podría mandar un file/image (js) por ajax?
Publicado por: Leguim en 26 Octubre 2020, 18:39 PM
En un tema anterior se había resuelto de un método diferente, pero quería ver si se podía hacer de esta manera que sería una manera más corta para mí.

Recibo un archivo a partir de un FormData, este archivo es una imagen.

(no sé como podría redimensionar la imagen, para ahorrarle la tarea al mod)
(https://i.ibb.co/PY70mbJ/file-image.jpg)

Código (javascript) [Seleccionar]

formdata.get('photo_1'); // devolverá el archivo/imagen


Ahora yo quiero que ese dato que tengo con JS mandarlo por medio de AJAX pero por medio de un parametro, es decir.

Código (javascript) [Seleccionar]

function Enviar_Imagen(image)
{
                      $.ajax({
url: 'archivo.php',
type: 'POST',
dataType: 'html',
data: {image},

success: function()
{
// proceso terminado
}
})

.done(function(results)
{
$('body').append(results);
})
}


Su aplicación sería...

Código (javascript) [Seleccionar]

Enviar_Imagen(formdata.get('photo_1')); // si existe el dato enviará lo anterior que mostré por consola, pero si no existe enviará NULL


Tengo un problema/error, que dice algo de ilegal blob...

¿Alguna ayuda?

Gracias.
Título: Re: [Pregunta]: ¿Cómo se podría mandar un file/image (js) por ajax?
Publicado por: EdePC en 27 Octubre 2020, 16:02 PM
Con jQuery ni idea, por lo que he estado probando no soporta en envío de datos complejos, al menos a mí me ha dado errores de Blob y Tamaño de variable PHP.

Con javascript me funciona lo siguiente:

(https://i.ibb.co/F8w5Vs3/index-php.png)

-- El código lo pego en un PasteBin porque me es imposible pasar el Captcha (bucle infinito) >:D
https://pastebin.com/ZS9DRRJ5

- destino.php

Código (php-brief) [Seleccionar]
<?php
  
if ($_FILES) {
    echo 
'<pre>';
    echo 
htmlspecialcharsprint_r($_FILEStrue) );
    echo 
'</pre>';
  }
?>


- Mostrando
CitarArray
(
   [archivos] => Array
       (
           [name] => arvak.jpg
           [type] => image/jpeg
           [tmp_name] => D:\SFT\UniServerZ\tmp\php1A26.tmp
           [error] => 0
           [size] => 258655
       )

)

Para redimensionar la imagen puedes utilizar alguna función como https://www.php.net/manual/es/function.imagecopyresized.php
Título: Re: [Pregunta]: ¿Cómo se podría mandar un file/image (js) por ajax?
Publicado por: Leguim en 27 Octubre 2020, 18:52 PM
¡GRACIAS! Más allá de no dar con la respuesta (seguramente use el método que tenía antes), pero gracias por dedicar tu tiempo en intentar ayudarme.

(https://i.pinimg.com/736x/c4/1d/55/c41d5539fbdcc845b443fcb4bac5ff43.jpg)

Gracias.  :xD