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($datos, JSON_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?