Ver Mensaje Individual
  #1  
Antiguo 13-04-2024
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Reputación: 21
oscarac Va por buen camino
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?
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por Casimiro Notevi fecha: 13-04-2024 a las 21:19:13.
Responder Con Cita