Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2024
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 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 20:19:13.
Responder Con Cita
  #2  
Antiguo 15-07-2024
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.003
Poder: 26
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Ha pasado tiempo, pero...

Puedes intentar comparar las imágenes, bit a bit, pero tardará lo suyo si la imagen es un poco grande, y no sé cómo se podría hacer si la imagen está en la base de datos.

Otra posibilidad es obtener una firma de la imagen (md5, CR32...) y guardarla. Claro que siempre puede salir una colisión (dos imágenes diferente que generen el mismo md5, por ejemplo), aunque se puede solucionar comparando tamaños y sacando dos firmas diferentes (es más difícil que dos imágenes distintas tengan el mismo tamaño y generen los mismos md5 y SHA1, por ejemplo).
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manejo de imágenes (Punto de venta) andres_89 C++ Builder 3 31-03-2018 18:24:42
Componentes para manejo de imagenes y graficos elrayo76 Varios 1 26-08-2016 08:51:42
Manejo de Imagenes Dclase API de Windows 7 23-07-2008 11:38:55
Manejo de imagenes espaillat1728 Gráficos 3 15-03-2008 15:55:38
Manejo de Imagenes fmonte Varios 1 12-04-2005 18:26:40


La franja horaria es GMT +2. Ahora son las 10:19:23.


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
Copyright 1996-2007 Club Delphi