Foros del Web » Programando para Internet » PHP »

Subir con este codigo

Estas en el tema de Subir con este codigo en el foro de PHP en Foros del Web. Amigos tengo este codigo para subir informacion y una imagen el cual funciona a las mil maravillas, pero ahora quiero que en este mismo codigo ...
  #1 (permalink)  
Antiguo 26/01/2012, 10:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 167
Antigüedad: 16 años, 4 meses
Puntos: 0
Subir con este codigo

Amigos tengo este codigo para subir informacion y una imagen el cual funciona a las mil maravillas, pero ahora quiero que en este mismo codigo me pueda subir varias fotos.

En la BD la foto queda guardado el nombre y me la sube a una carpeta, necesito poder subir varias imagenes para un catalogo.

Código PHP:
<?
if($_GET["nuevo"] == "producto")
{
include(
"archivos/conexion.php");
if(!empty(
$_POST["foto_nueva"]))
{
$foto=$_POST["foto_nueva"];
}
else
{
$uploaddir "fotos/";
$uploadfile $uploaddir basename($_FILES['userfile']['name']);
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
include(
"archivos/conexion.php");
echo 
"<div id=correcto>El Archivo <b>$uploadfile</b> ha sido subido correctamente.\n</div>";
} else {
echo 
"<div id=error>El archivo no se pudo cargar en el servidor.\n</div>";
}
$foto=basename($_FILES['userfile']['name']);
chmod($uploadfile0666);
}
mysql_db_query("$db","insert into neumaticos (marca,descripcion,tipo,ancho,perfil,aro,carga,velocidad,diseno,categoria,foto) values ('".$_POST["marca"]."', '".$_POST["descripcion"]."', '".$_POST["tipo"]."', '".$_POST["ancho"]."', '".$_POST["perfil"]."', '".$_POST["aro"]."', '".$_POST["carga"]."', '".$_POST["velocidad"]."', '".$_POST["diseno"]."', '".$_POST["categoria"]."', '".$foto."')") or die(mysql_error());
}
elseif(
$_GET["borrar"] == "producto")
{
require(
"archivos/conexion.php");
mysql_db_query("$db","delete from neumaticos WHERE ID='".$_GET["id"]."'");
}
elseif(
$_GET["editada"] == "producto")
{
include(
"archivos/conexion.php");
mysql_db_query("$db","UPDATE neumaticos SET marca='".$_POST["marca"]."', desc='".$_POST["desc"]."', tipo='".$_POST["tipo"]."', ancho='".$_POST["ancho"]."', perfil='".$_POST["perfil"]."', aro='".$_POST["aro"]."', carga='".$_POST["carga"]."', velo='".$_POST["velo"]."', diseno='".$_POST["diseno"]."', cate='".$_POST["cate"]."' WHERE id='".$_POST["id"]."'") or die(mysql_error());
}
?>
Espero puedan ayudarme
  #2 (permalink)  
Antiguo 26/01/2012, 11:41
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Subir con este codigo

Hola.

Para subir multiples archivos lo que se debe hacer es generar un arreglo para los diferentes archivos que se suban. Para esto se define en el fomulario de html

<input name="archivo[]" type="file">

Luego en la parte de php se recogen estos valores. Con ayuda de la función count verifica cuantos archivos estan dentro de la matriz y has un ciclo. De esa manera se puede comprobar si el campo viene vacio o no. Ademas se puede verificar las condiciones (que si tiene tal tamaño no pase o si es tal tipo de archivo pase o no) y así se va generando por cada campo las condiciones. En caso de que pase se mueve la fila o si no se borra.

Apoyate con la matriz $HTTP_POST_FILES para hacer esto que comento.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 26/01/2012, 12:06
Avatar de ecarlevaro  
Fecha de Ingreso: octubre-2010
Ubicación: Paraná, Argentina
Mensajes: 80
Antigüedad: 13 años, 6 meses
Puntos: 13
Respuesta: Subir con este codigo

Tal cual te dice @cuasatar insertas tantos <INPUT type='file' /> como imagenes necesites subir con el atributo name='imagenes[]' .
Ahora si tienes que subir 5, o 10 fotos o 50, tienes que poner muchas cajas y el usuario volverse loco seleccionando los 50 archivos, en ese caso...

Puedes aprovechar las ventajas de HTML 5, y desarrollar el formulario con una única caja <INPUT type='file' multiple='true' name=imagenes[] />
Aquí explico bien como funciona esto http://www.forosdelweb.com/f175/inpu...ml-5-a-899933/
  #4 (permalink)  
Antiguo 26/01/2012, 12:30
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Subir con este codigo

Gracias a @ecarlevaro por ese aporte tan bueno. No lo conocia y en verdad es muy util. Complementando un poco mi respuesta encontre por ahí un script que bien podria servirte. La idea es que lo mejoraras un poco pero mas o menos es lo que te comente.

http://www.webdeveloper.com/forum/sh...d.php?t=255991

Se puede mejorar un poco para que quede mas práctico. Le veo fallas pero puede servirte de base.

p.s. No se si aun PHP da soporte usando la matriz $HTTP_POST_FILES o solo usa la $_FILES. Por practicidad usaria la ultima.
__________________
Blog de humor http://elcuasatar.net63.net/
  #5 (permalink)  
Antiguo 26/01/2012, 12:42
Avatar de ecarlevaro  
Fecha de Ingreso: octubre-2010
Ubicación: Paraná, Argentina
Mensajes: 80
Antigüedad: 13 años, 6 meses
Puntos: 13
Respuesta: Subir con este codigo

Ese script usa la función copy() para copiar el archivo a su lugar definitivo.
Por seguridad es conveniente usar la funcion move_uploaded_file() que está especificamente diseñada para mover archivos subidos por un formulario. Hace una comprobación de que el archivo fue subido por el método POST.

Saludos.
  #6 (permalink)  
Antiguo 26/01/2012, 12:57
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Subir con este codigo

Cita:
Se puede mejorar un poco para que quede mas práctico. Le veo fallas pero puede servirte de base.
Cita:
Ese script usa la función copy() para copiar el archivo a su lugar definitivo.
Por seguridad es conveniente usar la funcion move_uploaded_file() que está especificamente diseñada para mover archivos subidos por un formulario. Hace una comprobación de que el archivo fue subido por el método POST.
Precisamente ese era el error que yo comentaba que le veia. Tambien debes verificar que el type del archivo sea una imagen usando la propiedad type de la matriz o si no te pueden meter un golazo.
__________________
Blog de humor http://elcuasatar.net63.net/
  #7 (permalink)  
Antiguo 26/01/2012, 13:53
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Subir con este codigo

Cita:
Iniciado por cuasatar Ver Mensaje
p.s. No se si aun PHP da soporte usando la matriz $HTTP_POST_FILES o solo usa la $_FILES. Por practicidad usaria la ultima.
$HTTP_POST_FILES es obsoleto desde PHP 4.1.0. Siempre se recomienda usar $_FILES
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: imagenes, mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:41.