“Conocimiento Programación>Programación PHP /MySQL

¿Cómo se inserta archivos en una base de datos usando PHP?

2014/8/14
`` `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.

Programación PHP /MySQL
Cómo usar apuntadores de archivo en PHP
¿Por qué no MySQL por defecto a UTF - 8
Cómo insertar Ignorar o Obtenga ID en MySQL
Cómo Convertir un Timestamp PHP a una Fecha
¿Qué es el PHP Límite de caracteres Correo
Cómo dibujar una línea en PHP
Cómo cargar una URL en un DIV Uso de la función PHP
Cómo Tirar Fecha Fuera de Base de Datos MySQL la presentará a través de PHP
Conocimiento de la computadora © http://www.ordenador.online