Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   consulta sobre manejo de imagenes (https://www.clubdelphi.com/foros/showthread.php?t=96673)

oscarac 13-04-2024 16:39:05

consulta sobre manejo de imagenes
 
buenos dias

por un proyecto especifico estoy usando php, pero se me ha planteado un problema
imaginen que estan en una pantalla de mantenimiento de producto y hay un espacio para colocar el logo

cuando voy a grabar mando la informacion al controlador

Código PHP:

  case 'ACTUALIZAR_TIENDA2':
      
$token $_POST['token'];
      
parse_str($_POST['data_tienda'], $detalle_form);
      
$logo = [];
      if (isset(
$_FILES['archivo_imagen'])) {
          
$logo $_FILES['archivo_imagen'];
      }
      
$datos = new ActivacionController();
      
$datos->getGrabarUsuario2($token$detalle_form$logo);
      break; 

este a su vez lo manda a un modelo

Código PHP:

  public function getGrabarUsuario2($token$detalle_form$logo)
  {
    
$datos ActivacionModel::mdlGrabarUsuario2($token$detalle_form$logo);
    echo 
json_encode($datosJSON_UNESCAPED_UNICODE);
  } 


el modelo graba

ahora tengo un campo logo en la tabla que obtiene el valor del nombre de lfile, hasta ahi todo bien, graba perfecto y sube el archivo a la nube
en la carpeta que le corresponde

el problema viene cuando quiero cambiar algun dato y tengo que grabar de nuevo

cuando pasa el file por parametro viene vacio porque el archivo origen no esta necesariamente en el mismo lugar, lo solucione dandole el valor del nombre de archivo de la tabla al leer los campos a modificar

Código PHP:

 var formData = new FormData();
      var 
file_image = $("#imagen").val();
      if (
file_image) {
        var 
ext file_image.substring(file_image.lastIndexOf("."));
        if (
ext != ".jpg" && ext != ".png" && ext != ".gif" && ext != ".jpeg" && ext != ".webp" && ext != ".heic") {
          
mensajeToast('error'"La extensión " ext " no es una imagen válida");
          
imagen_valida false;
        }
        if (!
imagen_valida) {
          return;
        }
        const 
inputImage document.querySelector('#imagen');
        
formData.append('archivo_imagen'inputImage.files[0]);
        
console.log(inputImage.files[0]);
      }
      
formData.append("accion"'ACTUALIZAR_TIENDA2');
      
formData.append("token"tok);
      
formData.append("data_tienda", $("#frm-datos-tienda2").serialize());
      
respuesta FunctionAjax("controller/activacion.controller.php""POST"formData); 

el tema es que el archivo origen para subir es el mismo que el archivo dstino para subir y ese hace que se "distorcione" la imagen, espero que me hayan podido entender

alguna alternativa de solucion?

pense en primero preguntar si el archivo es el mismo para no subir el archivo, pero que pasa si tiene el mismo nombre pero el contenido es diferente?


La franja horaria es GMT +2. Ahora son las 08:51:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi