Cargar varios archivos en PHP
-
Utilice la etiqueta
multiple
, un array en la etiquetaname
del atributoinput
en el formulario y la funciónmove_uploaded_file()
para cargar varios archivos en PHP - Utilice el PDO para cargar varios archivos en la base de datos en PHP
Introduciremos un método para cargar varios archivos en PHP especificando el atributo name
de la etiqueta input
como un array y utilizando el atributo multiple
. El valor del atributo enctype
de la etiqueta form
es multipart/form-data
. Este método utiliza mysqli
para la conexión a la base de datos.
También presentaremos otro método para cargar múltiples archivos en PHP usando el PDO. Cargaremos los archivos en una carpeta y luego los cargaremos a una base de datos. Este método es similar al primer método en términos de implementación.
Utilice la etiqueta multiple
, un array en la etiqueta name
del atributo input
en el formulario y la función move_uploaded_file()
para cargar varios archivos en PHP
Podemos especificar el atributo name
de la etiqueta input
como un array para cargar varios archivos. La etiqueta input
utiliza la palabra clave multiple
que nos permite seleccionar el archivo múltiple durante la carga. Podemos escribir la codificación multipart/form-data
para el atributo enctype
para especificar cómo se deben codificar los datos del formulario al enviar el formulario. Podemos usar mysqli
para conectarnos a la base de datos. La función move_uploaded_file()
mueve el archivo cargado desde una ubicación temporal del servidor a la ubicación deseada. Podemos utilizar las sentencias SQL INSERT
para subir el archivo seleccionado a la base de datos.
Por ejemplo, establezca una conexión de base de datos con el objeto mysqli
y asigne el valor a la variable $db
. Cree un formulario HTML con el método POST
y el tipo de codificación como multipart/form-data
para cargar los archivos. Especifique el atributo type
de la etiqueta input
como file
y el atributo name
como file[]
. No olvide escribir el atributo multiple
antes de cerrar la etiqueta input
. Escriba la etiqueta input
para enviar el formulario.
Compruebe si el formulario se ha enviado con la función isset()
. Utilice la función count
para contar el número de archivos cargados. Tome $_FILES['file']['name']
como parámetro para la función count
y asígnelo a una variable $countfiles
. Utilice el bucle for para recorrer el archivo cargado. Dentro del bucle, cree una variable $filename
y asígnela como $_FILES['file']['name'][$i]
. Cree una carpeta llamada cargar
en el directorio raíz. Utilice la función move_upload_file()
para mover el archivo. Utilice $_FILES['file']['tmp_name'][$i]
como el primer parámetro que es el archivo con nombre temporal. Utilice 'upload/'.$filename
como segundo parámetro, que es el nombre del archivo y la ubicación para almacenar el archivo cargado.
Ejecute una consulta SQL INSERT
para insertar los archivos en la base de datos. Inserte la variable $filename
como id
y name
en la tabla fileup
de la base de datos. Utilice la variable $db
para llamar a la función query()
con la variable $sql
como parámetro para ejecutar la consulta.
Código de ejemplo:
# php 7.*
<?php
if(isset($_POST['submit'])){
$countfiles = count($_FILES['file']['name']);
for($i=0;$i<$countfiles;$i++){
$filename = $_FILES['file']['name'][$i];
$sql = "INSERT INTO fileup(id,name) VALUES ('$filename','$filename')";
$db->query($sql);
move_uploaded_file($_FILES['file']['tmp_name'][$i],'upload/'.$filename);
}
}
?>
<form method='post' action='' enctype='multipart/form-data'>
<input type="file" name="file[]" id="file" multiple>
<input type='submit' name='submit' value='Upload'>
</form>
?>
Producción :
SELECT * FROM `fileup`
id name
1 cfc.jpg
2 hills.jpg
Utilice el PDO para cargar varios archivos en la base de datos en PHP
Podemos usar el PDO para cargar varios archivos en PHP. Podemos usar el objeto PDO para crear una conexión a la base de datos. Usamos las declaraciones preparadas para insertar el archivo en la base de datos. Este método solo es diferente del primer método en términos de conexión a la base de datos. También podemos usar el formulario HTML exacto para este método. Demostramos este método cargando dos archivos jpg en la carpeta y la base de datos.
Por ejemplo, establezca una conexión a la base de datos PDO utilizando la palabra clave new
y asígnela a la variable $conn
. Compruebe si el formulario se ha enviado con la función isset()
. Cuente los archivos usando la función count
como arriba. Luego, escriba una consulta en la variable $query
para insertar el id
y el name
. Escriba los marcadores de posición ?
para los valores de la consulta. Prepare la consulta usando la función prepare()
y asigne el valor en la variable $statement
. Mueva cada archivo a la carpeta uplaod
usando la función move_uploaded_file()
. Ejecute la consulta usando la función execute()
. Proporcione un array con $filename
y $target_file
como parámetros en la función.
En el siguiente ejemplo, el usuario carga dos archivos jpg. En primer lugar, el archivo se carga en la carpeta upload
y luego se carga en la base de datos. La base de datos contiene la tabla fileup
, y tiene las columnas id
y name
. Para obtener más información sobre la función move_uploaded_files()
, consulte el Manual de PHP.
Código de ejemplo:
#php 7.x
<?php
$conn = new PDO("mysql:host=$server;dbname=$dbname","$username","$password");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
if(isset($_POST['submit'])){
$countfiles = count($_FILES['file']['name']);
$query = "INSERT INTO fileup (id, name) VALUES(?,?)";
$statement = $conn->prepare($query);
for($i=0;$i<$countfiles;$i++){
$filename = $_FILES['file']['name'][$i];
$target_file = 'upload/'.$filename;
move_uploaded_file($_FILES['file']['tmp_name'][$i],$target_file);
$statement->execute(array($filename,$target_file));
}
}
?>
Producción :
SELECT * FROM `fileup`
id name
1 upload/cfc.jpg
2+ upload/count.jpg
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn