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

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

2012/8/24
`` `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 utilizar calamar con PHP
Cómo acceder a MySQL desde PHP
Cómo editar PHP en modo de diseño
Cómo anular la configuración de clases en PHP
Cómo poner una consulta en MySQL y DB2
Cómo Tablas granel - Delete en MySQL
Cómo cargar un archivo XML con PHP
Cómo obtener una URL de la página anterior en PHP
Conocimiento de la computadora © http://www.ordenador.online