entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Hola tengo un formulario el cual sube imágenes a la db y las guarda en una carpeta en mi localhost pero al tratar de eliminarla solo se elimina de la db pero sigue estando en la carpeta del localhost. Por favor si pueden ayudarme.
Este es el codigo para subir las imagens

<?php
include ('conexion.php');
$nombre      = $_POST['nombre'];
$descripcion = $_POST['descripcion'];
$imagen      = addslashes(file_get_contents($_FILES['imagen']['tmp_name']));

$carpetaPublica  = '/\\uploads/\\'; // carpeta que estara disponible desde el navegador
$rutaEnServidor = "C:/\\wamp64/\\www/\\Proyecto$carpetaPublica"; // ruta completa para que el move_upload_file no se maree.. 

$nombreImagen    = date('Ymd_His').rand().$_FILES['imagen']['name'];
$rutaFinalImagenBd = $carpetaPublica.$nombreImagen;

$rutaFinalImagen = $rutaEnServidor.$nombreImagen; 
$pathImagen = move_uploaded_file($_FILES['imagen']['tmp_name'], $rutaFinalImagen);

if ($pathImagen) {

   $query = "INSERT INTO imagenes(nombre, descripcion, ruta_imagen) VALUES ('$nombre', '$descripcion',  '$rutaFinalImagenBd')";
    $resultado = $conexion->query($query);
}{

if($resultado){
    echo"<script type='text/javascript'>;
alert ('El archivo se subio correctamente');
window.location='eliminar.php';
</script>";
 }else {
     echo"<script type='text/javascript'>;
alert ('Error al subir el archivo');
window.location='eliminar.php';
</script>";

 }}
 ?>

Este es el código para eliminar

 if(isset($_GET['cve_imagen'])){
    $cve_imagen= $_GET['cve_imagen'];
  }
try {
include('conexion.php');

$sql="DELETE FROM imagenes WHERE cve_imagen='$cve_imagen'";
$resultado=mysqli_query($conexion, $sql);
if($resultado){
    unlink("C:/\\wamp64/\\www/\\Proyecto");}
echo"<script type='text/javascript'>;
alert ('Archivo Borrado');
window.location='eliminar.php';
</script>";

} catch(Exception $e){
    $error=$e->getMessage();
  }

1 Respuesta

1voto

carlossevi Puntos62690

La ruta que utilizas para la eliminación no parece ser la ruta de la imagen:

unlink("C:/\\wamp64/\\www/\\Proyecto");

Deberías rescatar la ruta de la imagen de la bbdd antes de eliminar el registro. Te propondría la consulta SQL para ello pero no queda clara la estructura de tu tabla de imágenes. Debería ser algo similar a:

SELECT ruta_imagen FROM imagenes WHERE cve_imagen='$cve_imagen'

Eduardo_Torres comentado Ago 2

La tabla imágenes cuenta con cve_imagenes, nombre, descripción y ruta y referente a la ruta de la imagen me faltaba esto unlink("C:/\wamp64/\www/\Proyecto/\uploads");
pero aun asi me sigue apareciendo el mensaje de error de permiso denegado en...

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Otras Preguntas y Respuestas


Actividad Reciente

  • Leonardo-Tadei ganó una medalla hace 20 horas

    Buena Respuesta - Recibió +5 votos en respuesta
  • Ibra ganó una medalla hace 20 horas

    Club de los 100 - Recibió un total de 100 puntos
  • Ibra ganó una medalla hace 20 horas

    Humano Verificado - Verificó su email
  • Adriana ganó una medalla hace 22 horas

    Club de los 100 - Recibió un total de 100 puntos
  • Adriana ganó una medalla hace 22 horas

    Humano Verificado - Verificó su email
  • Umarumm ganó una medalla hace 2 días

    Buena Pregunta - Recibió +1 votos en pregunta
  • joebak ganó una medalla hace 2 días

    Editor - Performed total of 1 edit
  • joebak ganó una medalla hace 2 días

    Club de los 100 - Recibió un total de 100 puntos
...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta