Foro de elhacker.net

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
  1. formdata.get('photo_1'); // devolverá el archivo/imagen
  2.  

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
  1. function Enviar_Imagen(image)
  2. {
  3.                      $.ajax({
  4. url: 'archivo.php',
  5. type: 'POST',
  6. dataType: 'html',
  7. data: {image},
  8.  
  9. success: function()
  10. {
  11. // proceso terminado
  12. }
  13. })
  14.  
  15. .done(function(results)
  16. {
  17. $('body').append(results);
  18. })
  19. }
  20.  

Su aplicación sería...

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

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
  1. <?php
  2.  if ($_FILES) {
  3.    echo '<pre>';
  4.    echo htmlspecialchars( print_r($_FILES, true) );
  5.    echo '</pre>';
  6.  }
  7. ?>

- Mostrando
Citar
Array
(
    [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