En esta ocasión vamos a ver un ejemplo de como subir varias imagenes o archivos al servidor con php utilizando multiupload y seleccionando varios archivos al mismo tiempo. Muy útil para portales que suben muchas imágenes.
Para poder seleccionar varias imagenes con el mismo input type file tenemos que asignarle el parametro multiple:
Para poder seleccionar varias imagenes con el mismo input type file tenemos que asignarle el parametro multiple:
<input type="file" name="imagen[]" value="" multiple>Ahora el ejemplo completo, solo copia y pega para probarlo:
<?php
if (isset($_FILES['imagen'])){
$cantidad= count($_FILES["imagen"]["tmp_name"]);
for ($i=0; $i<$cantidad; $i++){
//Comprobamos si el fichero es una imagen
if ($_FILES['imagen']['type'][$i]=='image/png' || $_FILES['imagen']['type'][$i]=='image/jpeg'){
//Subimos el fichero al servidor
move_uploaded_file($_FILES["imagen"]["tmp_name"][$i], $_FILES["imagen"]["name"][$i]);
$validar=true;
}
else $validar=false;
}
}
?>
<form method="post" action="?" enctype="multipart/form-data">
<input type="file" name="imagen[]" value="" multiple><br>
<input type="submit" value="Subir Imagen">
</form>
<?php if (isset($_FILES['imagen']) && $validar==true){ ?>
<?php $cantidad= count($_FILES["imagen"]["tmp_name"]);
for ($i=0; $i<$cantidad; $i++){?>
<h1><?php echo $_FILES["imagen"]["name"][$i] ?></h1>
<img src="<?php echo $_FILES["imagen"]["name"][$i] ?>" width="100">
<?php } }?>Si te a gustado el post compártelo!7
Puntos
Puntos
25290
Visitas
Visitas
14
Resp
Resp
Por alber hace 10 años
Admin
Respuesta #1
Esto sube los archivos, pero si quiero que me guarde en la base de datos?
1
Puntos
Puntos
Por zapikero hace 10 años
Developer
Respuesta #2
Gracias amigo me sirvió de mucho (y)
1
Puntos
Puntos
Por luismiguel hace 9 años
Novice
Respuesta #3
Buenas tengo un problemas con la ruta de destino en mi caso seria "galerias/" no se como colocar la ruta correctamente pueden ayudarme?
1
Puntos
Puntos
Por shukoy4 hace 8 años
Novice
Respuesta #4
hola, prueba con:
move_uploaded_file($_FILES["imagen"]["tmp_name"][$i], 'galerias/'.$_FILES["imagen"]["name"];o con:
move_uploaded_file($_FILES["imagen"]["tmp_name"][$i], '../galerias/'.$_FILES["imagen"]["name"]saludos
1
Puntos
Puntos
Por alber hace 8 años
Admin
Respuesta #5
correcto si me funciono aunque tuve que agregar [$i] al final porque me daba errores con el array funciono de esta forma
move_uploaded_file($_FILES["imagen"]["tmp_name"][$i],'../galerias/'.$_FILES["imagen"]["name"][$i]
1
Puntos
Puntos
Por shukoy4 hace 8 años
Novice
Respuesta #6
Muchas gracias por el dato (y)
0
Puntos
Puntos
Por shukoy4 hace 8 años
Novice
Respuesta #7
exacto, cuando lo copie del post para darte el ejemplo falto copiar la [$i] pero veo que has pillado el concepto xd salu2
0
Puntos
Puntos
Por alber hace 8 años
Admin
Respuesta #8
hola .. que tal soy nuevo y me gusto la forma tan sencilla en que dan la información precisa y concreta como debe de ser. disculpen ya lo aplique a mi proyecto y si me funciono, solo tengo un detalle, que también quiero subir .PDFs y .DOCX en este caso que se puede hacer...... cualquier respuesta sea bienvenida y muchas gracias.
0
Puntos
Puntos
Por omarbethuel hace 8 años
Novice
Respuesta #9
omarBethuel crea un nuevo tema con tu petición, salu2
0
Puntos
Puntos
Por alber hace 8 años
Admin
Respuesta #10
ok gracias!!!!!
en este mometo lo creo
en este mometo lo creo
0
Puntos
Puntos
Por omarbethuel hace 8 años
Novice
Respuesta #11
hola buen aporte oye una pregunta como se gusrdar en la base de datos ya que yo meto imagnes y otros datos como descripción y id_usuario
0
Puntos
Puntos
Por migue hace 8 años
Novice
Respuesta #12
hola buenas tardes necesito de su ayuda
0
Puntos
Puntos
Por angel hace 5 años
Novice
Respuesta #13
como puedo remplazar mis lineas de codigo por las tuyas y coom quedaria
if(!$this->upload->do_upload()){
redirect(base_url().'sliders');
for ($i=0; $i<$cantidad; $i++){
}
else{
$imagen = $this->upload->data();
$resultado = $this->Sliders_model->nuevo($imagen['file_name']);
$datos['imagen'] = base_url().'uploads/'.$imagen['file_name'];
}
$data['mensaje'] = '<script>$(window).load(function(){mensaje("Slider Agregado!");})</script>';
$data['sliders'] = $this->Sliders_model->lista();
$this->plantilla('lista_sliders',$data);
if(!$this->upload->do_upload()){
redirect(base_url().'sliders');
for ($i=0; $i<$cantidad; $i++){
}
else{
$imagen = $this->upload->data();
$resultado = $this->Sliders_model->nuevo($imagen['file_name']);
$datos['imagen'] = base_url().'uploads/'.$imagen['file_name'];
}
$data['mensaje'] = '<script>$(window).load(function(){mensaje("Slider Agregado!");})</script>';
$data['sliders'] = $this->Sliders_model->lista();
$this->plantilla('lista_sliders',$data);
0
Puntos
Puntos
Por angel hace 5 años
Novice
Respuesta #14
como puedo remplazar mis lineas de codigo por las tuyas y coom quedaria
if(!$this->upload->do_upload()){
redirect(base_url().'sliders');
for ($i=0; $i<$cantidad; $i++){
}
else{
$imagen = $this->upload->data();
$resultado = $this->Sliders_model->nuevo($imagen['file_name']);
$datos['imagen'] = base_url().'uploads/'.$imagen['file_name'];
}
$data['mensaje'] = '<script>$(window).load(function(){mensaje("Slider Agregado!");})</script>';
$data['sliders'] = $this->Sliders_model->lista();
$this->plantilla('lista_sliders',$data);
if(!$this->upload->do_upload()){
redirect(base_url().'sliders');
for ($i=0; $i<$cantidad; $i++){
}
else{
$imagen = $this->upload->data();
$resultado = $this->Sliders_model->nuevo($imagen['file_name']);
$datos['imagen'] = base_url().'uploads/'.$imagen['file_name'];
}
$data['mensaje'] = '<script>$(window).load(function(){mensaje("Slider Agregado!");})</script>';
$data['sliders'] = $this->Sliders_model->lista();
$this->plantilla('lista_sliders',$data);
0
Puntos
Puntos
Por angel hace 5 años
Novice