Php
// Credenciales de la base de datos
$ servername ="localhost";
$ username ="UserName";
$ contraseña ="contraseña";
$ dbname ="myDatabase";
// Crear conexión
$ Conn =new MySQLI ($ ServerName, $ UserName, $ Password, $ dbname);
// verificar la conexión
if ($ conn-> Connect_error) {
die ("Conexión fallida:". $ conn-> Connect_error);
}
// Detalles de carga de archivo
$ Target_dir ="Supars/";
$ target_file =$ target_dir. BaseName ($ _ archivos ["filetoUpload"] ["nombre"]);
$ uploadok =1;
$ imageFileType =strtolower (pathInfo ($ target_file, pathInfo_extension));
// Verifique si el archivo de imagen es una imagen real o una imagen falsa
if (isset ($ _ post ["enviar"])) {
$ check =getImagesize ($ _ archivos ["filetoUpload"] ["tmp_name"]);
if ($ check! ==falso) {
Echo "El archivo es una imagen -". $ cheque ["mime"]. ".";
$ uploadok =1;
} demás {
echo "El archivo no es una imagen";
$ uploadok =0;
}
}
// Verifique si el archivo ya existe
if (file_exists ($ target_file)) {
echo "Lo siento, el archivo ya existe";
$ uploadok =0;
}
// verificar el tamaño del archivo
if ($ _files ["filetoUpload"] ["tamaño"]> 500000) {
echo "Lo siento, su archivo es demasiado grande";
$ uploadok =0;
}
// Permitir ciertos formatos de archivo
if ($ imageFileType! ="jpg" &&$ imageFileType! ="png" &&$ imageFileType! ="jpeg"
&&$ imageFileType! ="gif") {
echo "Lo siento, solo se permiten archivos JPG, JPEG, PNG y GIF";
$ uploadok =0;
}
// verifique si $ uploadok está configurado en 0 por un error
if ($ uploadok ==0) {
echo "Lo siento, su archivo no estaba cargado";
// Si todo está bien, intente cargar archivo
} demás {
if (mude_uploaded_file ($ _ archivos ["filetoUpload"] ["tmp_name"], $ target_file)) {
echo "el archivo". BaseName ($ _files ["filetoUpload"] ["nombre"]). "ha sido cargado";
// Insertar detalles del archivo en la base de datos
$ filename =Basename ($ _ archivos ["filetoUpload"] ["name"]);
$ file_path =$ target_file;
$ sql ="Insertar en archivos (nombre de archivo, file_path) valores ('$ filename', '$ file_path')";
if ($ conn-> query ($ sql) ===true) {
echo "nuevo registro creado con éxito";
} demás {
Echo "Error:". $ SQL. "
". $ conn-> error;
}
} demás {
echo "Lo siento, hubo un error cargar su archivo";
}
}
$ Conn-> Close ();
?>
`` `` ``
Explicación:
1. Configuración de la base de datos:
- Establezca una conexión con su base de datos MySQL utilizando la extensión 'MySQLI`.
- Reemplace los marcadores de posición como `Username`,` Password` y 'MyDatabase` con las credenciales de la base de datos reales.
2. Manejo de carga de archivo:
- Use la matriz superglobal `$ _files` para acceder a la información sobre el archivo cargado.
- Configure un directorio de destino (`$ target_dir`) donde se guardará el archivo.
- Realizar validación básica:
- Verifique si el archivo cargado es una imagen real (usando `getImagesize`).
- Verifique si el archivo ya existe en el directorio de destino.
- Verifique si el tamaño del archivo está dentro de los límites permitidos.
- Permita solo ciertos formatos de archivo (por ejemplo, JPG, PNG, GIF).
3. Almacenamiento de archivos:
- Si la validación pasa, use `Move_UPLOADED_FILE` para mover el archivo cargado temporal al directorio de destino.
4. Inserción de la base de datos:
- Después de almacenar con éxito el archivo, prepare una consulta SQL para insertar la información del archivo en su base de datos.
- Esto generalmente incluye el nombre de archivo y la ruta al archivo.
- Use el método `$ Conn-> Query` para ejecutar la consulta SQL.
Notas importantes:
- Seguridad: Siempre valida la entrada del usuario y las cargas de archivos para evitar vulnerabilidades de seguridad como ataques XSS o inyección de archivos.
- Tabla de base de datos: Asegúrese de tener una tabla de base de datos adecuada para almacenar información del archivo (por ejemplo, tabla de `archivos` con columnas como` filename`, `file_path`,` file_size`, etc.).
- Manejo de errores: Manejar posibles errores durante la carga de archivos e inserción de la base de datos. Muestre los mensajes apropiados al usuario.
- Límites de tamaño de archivo: Considere configurar los límites de tamaño de archivo apropiados para evitar la sobrecarga del servidor.
- Tipos de archivos: Puede modificar los tipos de archivos permitidos según los requisitos de su aplicación.
- desinfectación de datos: Desinfecta el nombre del archivo y otros datos antes de almacenarlo en la base de datos para evitar ataques de inyección SQL.
- Archivos grandes: Para manejar archivos grandes, considere usar técnicas como fragmentos o transmisión de cargas.
Recuerde adaptar este fragmento de código a su esquema de base de datos específico y requisitos de carga de archivos.