CARPETA UNLINK UPLOADS - ES6 API FETCH FOTO CON NOMBRE Y APELLIDO DELETE MYSQL PDO PHP
Para eliminar una
foto en una carpeta con nombre y apellido utilizando fetch en ES6 y luego
eliminar su nombre en una base de datos MySQL mediante PDO en PHP, puedes
enviar una solicitud fetch para eliminar el archivo en la carpeta y luego
enviar otra solicitud fetch para eliminar el nombre del archivo en la base de
datos.
Aquí hay un ejemplo
de cómo podrías hacerlo:
javascript
Copy code
const idInput = document.querySelector('#id');
const firstNameInput =
document.querySelector('#first-name');
const lastNameInput =
document.querySelector('#last-name');
const deleteButton =
document.querySelector('#delete-button');
deleteButton.addEventListener('click', () => {
const id =
idInput.value;
const
firstName = firstNameInput.value;
const lastName
= lastNameInput.value;
fetch(`/delete-photo.php?firstName=${firstName}&lastName=${lastName}`)
.then(response
=> {
if
(!response.ok) {
throw new
Error('Network response was not ok');
}
return
response.json();
})
.then(data
=> {
console.log(data);
fetch('/delete.php', {
method:
'POST',
headers: {
'Content-Type': 'application/json'
},
body:
JSON.stringify({id})
})
.then(response => {
if
(!response.ok) {
throw
new Error('Network response was not ok');
}
return
response.json();
})
.then(data
=> {
console.log(data);
})
.catch(error
=> {
console.error('There was an error deleting the data:', error);
});
})
.catch(error
=> {
console.error('There was an error deleting the file:', error);
});
});
En el ejemplo
anterior, se obtienen los valores de los campos de ID, nombre y apellido. Se
envía una solicitud fetch a la página PHP delete-photo.php con los valores de
nombre y apellido para eliminar el archivo correspondiente en la carpeta. Si la
respuesta es exitosa, se imprime en la consola. Se envía una solicitud fetch a
la página PHP delete.php con el método POST y el ID como cuerpo de la solicitud
para eliminar la fila correspondiente en la base de datos. La respuesta de la
solicitud se convierte a JSON utilizando el método json, y se imprime en la
consola. Si hay algún error al enviar las solicitudes, se maneja en los bloques
catch.
En la página PHP
delete-photo.php, puedes usar la función unlink() para eliminar el archivo
correspondiente en la carpeta con el nombre y apellido especificados. En la
página PHP delete.php, puedes usar una consulta preparada PDO para eliminar la
fila correspondiente en la tabla de la base de datos.
Aquí está el código
para la página delete-photo.php:
php
Copy code
<?php
$firstName = $_GET['firstName'];
$lastName = $_GET['lastName'];
$fileName =
"uploads/{$firstName}_{$lastName}.jpg";
if (file_exists($fileName)) {
unlink($fileName);
echo
json_encode(array('message' => 'File deleted.'));
} else {
echo
json_encode(array('message' => 'File not found.'));
}
?>
Aquí está el código
para la página delete.php:
php
Copy code
<?php
require_once 'config.php';
$id = $_POST['id'];
try {
$sql =
"DELETE FROM users WHERE id = :id";
$stmt =
$pdo->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
echo json_encode(array('message' => 'Data
deleted.'));
} catch (PDOException $e) {
echo
json_encode
ES6 API fetch foto con
nombre y apellido delete mysql pdo php
carpeta uploads
Para eliminar una
foto en una carpeta llamada "uploads" en PHP, MySQL y PDO, y
utilizando el API Fetch de ES6 para hacer la solicitud, puedes seguir estos
pasos:
Crear un archivo PHP
que maneje la eliminación de la foto. Supongamos que el archivo se llama
"delete_photo.php". Dentro de este archivo, primero se debe verificar
que se recibe el nombre y apellido del usuario y la ruta de la foto a eliminar.
Luego, se debe conectar a la base de datos y ejecutar una consulta de
eliminación que elimine la foto del directorio "uploads" y también
elimine cualquier registro en la base de datos relacionado con esa foto. Aquí
hay un ejemplo de cómo podría verse el archivo "delete_photo.php":
php
Copy code
<?php
// Verificar que se
reciben los parámetros necesarios
if (!isset($_POST['nombre']) ||
!isset($_POST['apellido']) || !isset($_POST['ruta'])) {
die("Falta información para eliminar la
foto");
}
$nombre =
$_POST['nombre'];
$apellido =
$_POST['apellido'];
$ruta =
$_POST['ruta'];
// Conectar a la
base de datos
$dsn =
"mysql:host=nombre_del_servidor;dbname=nombre_de_la_base_de_datos";
$username =
"nombre_de_usuario";
$password =
"contraseña_del_usuario";
try {
$db = new
PDO($dsn, $username, $password);
} catch
(PDOException $e) {
die("Error al conectar a la base de
datos: " . $e->getMessage());
}
// Eliminar la foto
del directorio "uploads"
if (file_exists($ruta)) {
unlink($ruta);
}
// Eliminar
cualquier registro en la base de datos relacionado con esa foto
$sql = "DELETE
FROM fotos WHERE nombre = :nombre AND apellido = :apellido AND ruta =
:ruta";
$stmt =
$db->prepare($sql);
$stmt->bindParam(':nombre',
$nombre);
$stmt->bindParam(':apellido',
$apellido);
$stmt->bindParam(':ruta', $ruta);
$stmt->execute();
echo "Foto
eliminada correctamente";
?>
En tu archivo
JavaScript, puedes utilizar el API Fetch para enviar una solicitud POST a
"delete_photo.php" con los parámetros necesarios. Aquí hay un ejemplo
de cómo podría verse el código JavaScript:
javascript
Copy code
const nombre =
"Juan";
const apellido =
"Pérez";
const ruta = "uploads/foto1.jpg";
fetch('delete_photo.php', {
method:
'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body:
`nombre=${nombre}&apellido=${apellido}&ruta=${ruta}`
})
.then(response => response.text())
.then(data => console.log(data))
.catch(error =>
console.error(error));
Este código envía
una solicitud POST a "delete_photo.php" con los parámetros
"nombre", "apellido" y "ruta". El servidor
procesa la solicitud y devuelve una respuesta en formato texto. En este caso,
simplemente se imprime el texto en la consola del navegador.
Recuerda cambiar los
valores de las variables "nombre", "apellido" y
"ruta" en el código JavaScript para que coincidan con los valores que
quieres eliminar. Además, asegúrate de que el archivo
"delete_photo.php" se encuentre en el mismo directorio que el archivo
JavaScript y que los permisos de la carpeta "uploads" permitan la
eliminación de archivos.
ES6 API fetch foto
con nombre y apellido delete mysql pdo php
carpeta uploads json
Para eliminar una
foto en una carpeta llamada "uploads" en PHP, MySQL y PDO, y
utilizando el API Fetch de ES6 para hacer la solicitud y retornar una respuesta
en formato JSON, puedes seguir los siguientes pasos:
Crear un archivo PHP
que maneje la eliminación de la foto. Supongamos que el archivo se llama
"delete_photo.php". Dentro de este archivo, primero se debe verificar
que se recibe el nombre y apellido del usuario y la ruta de la foto a eliminar.
Luego, se debe conectar a la base de datos y ejecutar una consulta de
eliminación que elimine la foto del directorio "uploads" y también
elimine cualquier registro en la base de datos relacionado con esa foto. Aquí
hay un ejemplo de cómo podría verse el archivo "delete_photo.php":
php
Copy code
<?php
// Verificar que se
reciben los parámetros necesarios
if (!isset($_POST['nombre']) ||
!isset($_POST['apellido']) || !isset($_POST['ruta'])) {
die(json_encode(array('success' => false,
'message' => 'Falta información para eliminar la foto')));
}
$nombre =
$_POST['nombre'];
$apellido =
$_POST['apellido'];
$ruta =
$_POST['ruta'];
// Conectar a la
base de datos
$dsn =
"mysql:host=nombre_del_servidor;dbname=nombre_de_la_base_de_datos";
$username =
"nombre_de_usuario";
$password =
"contraseña_del_usuario";
try {
$db = new
PDO($dsn, $username, $password);
} catch
(PDOException $e) {
die(json_encode(array('success' => false,
'message' => 'Error al conectar a la base de datos: ' .
$e->getMessage())));
}
// Eliminar la foto
del directorio "uploads"
if
(file_exists($ruta)) {
unlink($ruta);
}
// Eliminar
cualquier registro en la base de datos relacionado con esa foto
$sql = "DELETE
FROM fotos WHERE nombre = :nombre AND apellido = :apellido AND ruta =
:ruta";
$stmt =
$db->prepare($sql);
$stmt->bindParam(':nombre',
$nombre);
$stmt->bindParam(':apellido',
$apellido);
$stmt->bindParam(':ruta', $ruta);
$stmt->execute();
echo
json_encode(array('success' => true, 'message' => 'Foto eliminada
correctamente'));
?>
En tu archivo
JavaScript, puedes utilizar el API Fetch para enviar una solicitud POST a
"delete_photo.php" con los parámetros necesarios y recibir una
respuesta en formato JSON. Aquí hay un ejemplo de cómo podría verse el código
JavaScript:
javascript
Copy code
const nombre =
"Juan";
const apellido =
"Pérez";
const ruta = "uploads/foto1.jpg";
fetch('delete_photo.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body:
`nombre=${nombre}&apellido=${apellido}&ruta=${ruta}`
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error =>
console.error(error));
Este código envía
una solicitud POST a "delete_photo.php" con los parámetros
"nombre", "apellido" y "ruta". El servidor
procesa la solicitud y devuelve una respuesta en formato JSON con dos campos:
"success", que indica si la eliminación fue exitosa, y "message",
que contiene un mensaje con información adicional sobre la eliminación. En este
caso, se imprime la respuesta en la consola del navegador.
Recuerda cambiar los
valores de las variables "nombre", "apellido" y
"ruta" en el código JavaScript para que coincidan con los valores que
quieres eliminar. Además, aseg
<?php
$firstName =
$_GET['firstName'];
$lastName =
$_GET['lastName'];
// Eliminar la foto
correspondiente de la carpeta "uploads"
$filename =
"uploads/" . $firstName . "_" . $lastName . ".jpg";
if
(file_exists($filename)) {
unlink($filename);
}
// Eliminar el
nombre de la foto correspondiente de la base de datos
try {
$pdo = new
PDO("mysql:host=localhost;dbname=mydatabase", "username",
"password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt =
$pdo->prepare("DELETE FROM mytable WHERE firstName = :firstName AND
lastName = :lastName");
$stmt->bindParam(':firstName', $firstName);
$stmt->bindParam(':lastName', $lastName);
$stmt->execute();
$response =
array('status' => 'success', 'message' => 'Photo deleted successfully');
echo
json_encode($response);
} catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => 'Error deleting photo: ' .
$e->getMessage());
echo json_encode($response);
}
?>
ES6 API fetch foto
en carpeta con nombre y apellido delete mysql pdo php
Para eliminar una
foto en una carpeta con nombre y apellido utilizando fetch en ES6 y luego
eliminar su nombre en una base de datos MySQL mediante PDO en PHP, puedes enviar
una solicitud fetch para eliminar el archivo en la carpeta y luego enviar otra
solicitud fetch para eliminar el nombre del archivo en la base de datos.
Aquí hay un ejemplo
de cómo podrías hacerlo:
javascript
Copy code
const idInput = document.querySelector('#id');
const firstNameInput =
document.querySelector('#first-name');
const lastNameInput =
document.querySelector('#last-name');
const deleteButton =
document.querySelector('#delete-button');
deleteButton.addEventListener('click', () => {
const id =
idInput.value;
const
firstName = firstNameInput.value;
const lastName
= lastNameInput.value;
fetch(`/delete-file.php?file=${firstName}_${lastName}.jpg`)
.then(response
=> {
if
(!response.ok) {
throw new
Error('Network response was not ok');
}
return
response.json();
})
.then(data
=> {
console.log(data);
fetch('/delete.php', {
method:
'POST',
headers: {
'Content-Type': 'application/json'
},
body:
JSON.stringify({id})
})
.then(response
=> {
if
(!response.ok) {
throw
new Error('Network response was not ok');
}
return
response.json();
})
.then(data
=> {
console.log(data);
})
.catch(error
=> {
console.error('There was an error deleting the data:', error);
});
})
.catch(error
=> {
console.error('There was an error deleting the file:', error);
});
});
En el ejemplo
anterior, se obtienen los valores de los campos de ID, nombre y apellido. Se
envía una solicitud fetch a la página PHP delete-file.php con el nombre del
archivo para eliminar el archivo de la carpeta. Si la respuesta es exitosa, se
imprime en la consola. Se envía una solicitud fetch a la página PHP delete.php
con el método POST y el ID como cuerpo de la solicitud para eliminar la fila
correspondiente en la base de datos. La respuesta de la solicitud se convierte
a JSON utilizando el método json, y se imprime en la consola. Si hay algún
error al enviar las solicitudes, se maneja en los bloques catch.
En la página PHP
delete-file.php, puedes usar la función unlink() para eliminar el archivo
correspondiente en la carpeta con el nombre y apellido especificados. En la
página PHP delete.php, puedes usar una consulta preparada PDO para eliminar la
fila correspondiente en la tabla de la base de datos.
jose fernandez
ES6 API fetch foto
con nombre y apellido delete mysql pdo php
unlink("uploads/"
3 / 3
Claro, aquí te
proporciono un ejemplo de cómo eliminar una foto con nombre y apellido de la
carpeta "uploads" utilizando unlink() en PHP y luego eliminar su
nombre en una base de datos MySQL mediante PDO.
En el archivo
JavaScript, supongamos que ya tienes el valor del nombre y apellido, podrías
enviar una solicitud fetch de la siguiente manera:
javascript
Copy code
const firstName = "John";
const lastName = "Doe";
fetch(`/delete-photo.php?firstName=${firstName}&lastName=${lastName}`)
.then(response
=> {
if
(!response.ok) {
throw new
Error('Network response was not ok');
}
return
response.json();
})
.then(data
=> {
console.log(data);
})
.catch(error
=> {
console.error('There was an error deleting the photo:', error);
});
En la página PHP
delete-photo.php, podrías usar unlink() para eliminar la foto correspondiente
de la carpeta "uploads" y luego eliminar su nombre de la base de
datos. Por ejemplo:
php
Copy code
<?php
$firstName = $_GET['firstName'];
$lastName = $_GET['lastName'];
// Eliminar la foto
correspondiente de la carpeta "uploads"
$filename = "uploads/" . $firstName .
"_" . $lastName . ".jpg";
if (file_exists($filename)) {
unlink($filename);
}
// Eliminar el
nombre de la foto correspondiente de la base de datos
try {
$pdo = new
PDO("mysql:host=localhost;dbname=mydatabase", "username",
"password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt =
$pdo->prepare("DELETE FROM mytable WHERE firstName = :firstName AND
lastName = :lastName");
$stmt->bindParam(':firstName', $firstName);
$stmt->bindParam(':lastName', $lastName);
$stmt->execute();
$response =
array('status' => 'success', 'message' => 'Photo deleted successfully');
echo
json_encode($response);
} catch(PDOException $e) {
$response =
array('status' => 'error', 'message' => 'Error deleting photo: ' .
$e->getMessage());
echo json_encode($response);
}
?>
En el ejemplo
anterior, se obtienen los valores de nombre y apellido desde la solicitud GET.
Luego, se construye el nombre de archivo correspondiente y se elimina
utilizando unlink() si existe en la carpeta "uploads". A continuación,
se establece una conexión PDO con la base de datos, se prepara y ejecuta una
consulta SQL para eliminar la fila correspondiente en la tabla
"mytable". Si hay algún error durante la ejecución, se captura y se
envía una respuesta JSON de error. Si la ejecución es exitosa, se envía una
respuesta JSON de éxito.
Ten
en cuenta que debes asegurarte de tener los permisos adecuados en la carpeta
"uploads" para que PHP pueda eliminar archivos de la misma. Además,
asegúrate de validar y escapar los valores de entrada adecuadamente para evitar
posibles vulnerabilidades de seguridad.
Comentarios
Publicar un comentario