Foros del Web » Programando para Internet » PHP »

Ayuda Formulario de subir archivos..!

Estas en el tema de Ayuda Formulario de subir archivos..! en el foro de PHP en Foros del Web. Saludos Compañeros las presente es que tengo un formulario para subirl 5 archivos pero el problema esta que cuando cargo los 5 archivos aveces me ...
  #1 (permalink)  
Antiguo 17/01/2011, 11:27
Avatar de vbonive  
Fecha de Ingreso: septiembre-2010
Mensajes: 86
Antigüedad: 14 años, 3 meses
Puntos: 0
Ayuda Formulario de subir archivos..!

Saludos Compañeros las presente es que tengo un formulario para subirl 5 archivos pero el problema esta que cuando cargo los 5 archivos aveces me sube 2 o 1 este es el codigo si me pueden ayudar se los agredesco gracia..

Código PHP:
<?php
/*
NOTA: 
este archivo debe estar acompañado de una carpeta
con el nombre "archivos" en donde se copiaran los
archivos. Esta carpeta debe tener chmod 777. 
*/
//CONFIGURACION 
$maximo_tamano'2000000';                                                         //tamaño maximo de los archivos. 100000 equivale a 100kb.
$direccion_envio'[email protected]';         //la direccion a la que se enviara el email.
$url'http://www.carroenlinea.net'//la URL donde esta publicado el formulario. SIN la barra al final

//FIN CONFIGURACION
?>


<?PHP
//proceso del formulario
// si existe "enviar"...
if (isset ($_POST['enviar'])) {

//recogemos las variables
$nombre=$_POST['nombre'];
$email=$_POST['email'];
$comentario=$_POST['comentario'];

//comprobamos si se adjunto un archivo, y si su tamano es menor al permitido
if (isset($_FILES['archivo']['tmp_name'])) {
$tipo=$_FILES['archivo']['type'];
//Formatos de archivo permitidos, si desean agregar mas, agregar un case para cada formato. 
switch ($tipo) {
    case 
"image/gif":
    
$ext="gif";
    break;
    case 
"image/pjpeg":
    
$ext="jpg";
    break;
    case 
"image/jpeg":
    
$ext="jpg";
    break;
    case 
"image/png":
    
$ext="png";
    break;
    case 
"application/zip":
    
$ext="zip";
    break;
    default:
    
$ext="error";
    break;
}

$aleatorio rand(); 
$nombreoriginalexplode ('.'$_FILES['archivo']['name']);
$tamano=$_FILES['archivo']['size'];
$nuevonombre=$nombreoriginal[0].'-'.$aleatorio.'.'.$ext;
}

if (isset (
$nuevonombre)) {
if (
$ext=="error") {$error_archivo="<br />- Formato de archivo no permitido.";}
if (
$tamano $maximo_tamano) {$error_archivo="<br />- El tama&ntilde;o de su archivo supera el m&aacute;ximo permitido.";}
}

//comprobamos si todos los campos fueron completados
if ($nombre!='' && $email!='' && $comentario!='' && $error_archivo=='') {

// copiamos el archivo en el servidor
copy($_FILES['archivo']['tmp_name'],'archivos/'.$nuevonombre);
copy($_FILES['archivod']['tmp_name'],'archivos/'.$nuevonombre);
copy($_FILES['archivoe']['tmp_name'],'archivos/'.$nuevonombre);
copy($_FILES['archivoh']['tmp_name'],'archivos/'.$nuevonombre);
copy($_FILES['archivoi']['tmp_name'],'archivos/'.$nuevonombre);

//armamos el html
$contenido '<html><body>';
$contenido .= '<h2>Contacto desde formulario</h2>';
$contenido .= '<p>Enviado el '.  date("d M Y").'</p>';
$contenido .= '<hr />';
$contenido .= '<p>Nombre: <strong>'.$nombre.'</strong>';
$contenido .= '<p>Email: <strong>'.$email.'</strong>';
$contenido .= '<p>Archivo: <strong><a href="'.$url.'/archivos/'.$nuevonombre.'">'.$nuevonombre.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';
$contenido .= '<p>Comentario: <strong>'.$comentario.'</strong>';
$contenido .= '<hr />';
$contenido .= '</body></html>';

// si todos los campos fueron completados enviamos el mail
mail ($direccion_envio"Contacto desde el formulario"$contenido"From: $nombre\nContent-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit"); 
$flag='ok';
$mensaje='<div id="ok">Su archivo ha sido cargado con &eacute;xito<br /> Gracias por Contactarnos</div>';
} else {
//si no todos los campos fueron completados se frena el envio y avisamos al usuario    
$flag='err';
$mensaje='<div id="error">- Los Campos Marcados Con * Son Requeridos. '.$error_archivo.'</div>';

}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>Contactenos - v2</title>

<style>
    body {
            font: 1em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;
            font-size: 76%;}
        
    #form {
          border: 3px double #eaeaea;
          background-color: #FFC;
          padding: 1em;
          width: 30em;
          margin: auto;}

    #form h2{
            font-size: 2em;
            margin: 0 0 0.5em 0;
            padding: 0;}


    #form .campo {
            border: 1px solid #999;
            padding: 0.3em;
            font-size: 1.5em;}

    #form .error {
            border: 1px solid #F00;
            padding: 0.3em;
            font-size: 1.5em;}

    #form .com {
            border: 1px solid #999;
            padding: 0.3em;
            font-size: 1.5em;
            width:18em;
            height: 10em;
            font: 1.5em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;}

    #form .com-error {
            border: 1px solid #F00;
            padding: 0.3em;
            font-size: 1.2em;
            width:18em;
            height: 10em;
            font: 1.5em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;}

  #form .boton {
            border: 2px solid #999;
            padding: 0.3em;
            font-size: 1.2em;
            width: 4em;}

     #error {
          border: 1px dashed #F00;
          background-color: #FFF;
          padding: 5px;}

     #ok {
        border: 1px dashed #060;
        background-color:#FFF;
        padding: 5px;}
            
</style>

    </head>
    <body>
    <div id="form">
        
<h2>Formulario de Contacto v2</h2>
<p>Ejemplo del formulario de contacto con env&iacute;o de archivo</p>

<? echo $mensaje/*mostramos el estado de envio del form */ ?>
<? 
if ($flag!='ok') { ?>
<form action="<?php echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
    <p>Nombre* <br />
    <input <? if (isset ($flag) && $_POST['nombre']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="nombre" value="<? echo $_POST['nombre'];?>" /></p>
    
    <p>Email* <br />
    <input <? if (isset ($flag) && $_POST['email']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="email"  value="<? echo $_POST['email'];?>" /></p>


    <p>Subir Archivo*<br />(Formatos permitidos: .gif, .jpg, .png, .zip) <br />
    <input <? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> type="file" name="archivo"  value="<? echo $_FILE['archivo'];?>" />
    <input name="archivod" type="file" id="archivod"  value="<? echo $_FILE['archivod'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    <input name="archivoe" type="file" id="archivoe"  value="<? echo $_FILE['archivoe'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    <input name="archivoh" type="file" id="archivoh"  value="<? echo $_FILE['archivoh'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    <input name="archivoi" type="file" id="archivoi"  value="<? echo $_FILE['archivoi'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> /></p>
        
    <p>Comentario* <br />
    <textarea <? if (isset ($flag) && $_POST['comentario']=='') { echo 'class="com-error"';} else {echo 'class="com"';} ?> name="comentario"><? echo $_POST['comentario'];?></textarea></p>
    <p><input class="boton" type="submit" name="enviar" value="enviar" /></p>
    </form>
<? ?>
    </div> <!-- end form-->

    </body>
</html>
  #2 (permalink)  
Antiguo 17/01/2011, 11:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Ayuda Formulario de subir archivos..!

caray!!

¿estas usando copy() en lugar move_uploaded_file()?

y además, ¿usas el mismo $nuevonombre para los cinco archivos?

¿conoces las consecuencias de tus actos?

¿no?

a leer el manual, por favor...
http://php.net/manual/en/features.file-upload.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/01/2011, 11:32
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Ayuda Formulario de subir archivos..!

Revisa el valor de las directivas:
post_max_size
upload_max_filesize
max_file_uploads

En tu archivo php.ini
Puede ser que al subir muchos archivos, sobrepase ese valor y por eso solo te suba algunos.
  #4 (permalink)  
Antiguo 17/01/2011, 13:10
Avatar de vbonive  
Fecha de Ingreso: septiembre-2010
Mensajes: 86
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda Formulario de subir archivos..!

Saludos compañeros gracias por sus comentarios lo cambie a esta forma y ahora lo que hace es repetir las ultimas dos images, es decir me carga la primera imagen bien , la segunda bien, la tercera bien, y la cuarta y quinta me pone la tercera. ayuda gracias

Código PHP:
<?php
/*
NOTA: 
este archivo debe estar acompañado de una carpeta
con el nombre "archivos" en donde se copiaran los
archivos. Esta carpeta debe tener chmod 777. 
*/
//CONFIGURACION 
$maximo_tamano'100000';                                                         //tamaño maximo de los archivos. 100000 equivale a 100kb.
$direccion_envio'[email protected]';         //la direccion a la que se enviara el email.
$url'http://www.carroenlinea.net'//la URL donde esta publicado el formulario. SIN la barra al final

//FIN CONFIGURACION
?>


<?PHP
//proceso del formulario
// si existe "enviar"...
if (isset ($_POST['enviar'])) {

//recogemos las variables
$nombre=$_POST['nombre'];
$email=$_POST['email'];
$comentario=$_POST['comentario'];

//comprobamos si se adjunto un archivo, y si su tamano es menor al permitido
if (isset($_FILES['archivo']['tmp_name'])) {
$tipo=$_FILES['archivo']['type'];
$tipo=$_FILES['archivod']['type'];
$tipo=$_FILES['archivoe']['type'];
$tipo=$_FILES['archivoh']['type'];
$tipo=$_FILES['archivoi']['type'];
//Formatos de archivo permitidos, si desean agregar mas, agregar un case para cada formato. 
switch ($tipo) {
    case 
"image/gif":
    
$ext="gif";
    break;
    case 
"image/pjpeg":
    
$ext="jpg";
    break;
    case 
"image/jpeg":
    
$ext="jpg";
    break;
    case 
"image/png":
    
$ext="png";
    break;
    case 
"application/zip":
    
$ext="zip";
    break;
    default:
    
$ext="error";
    break;
}

$aleatorio rand(); 
$nombreoriginalexplode ('.'$_FILES['archivo']['name']);
$nombreoriginalexplode ('.'$_FILES['archivod']['name']);
$nombreoriginalexplode ('.'$_FILES['archivoe']['name']);
$nombreoriginalexplode ('.'$_FILES['archivoh']['name']);
$nombreoriginalexplode ('.'$_FILES['archivoi']['name']);
$tamano=$_FILES['archivo']['size'];
$tamano=$_FILES['archivod']['size'];
$tamano=$_FILES['archivoe']['size'];
$tamano=$_FILES['archivoh']['size'];
$tamano=$_FILES['archivoi']['size'];
$nuevonombre=$nombreoriginal[0].'-'.$aleatorio.'.'.$ext;
$nuevonombred=$nombreoriginal[1].'-'.$aleatorio.'.'.$ext;
$nuevonombree=$nombreoriginal[2].'-'.$aleatorio.'.'.$ext;
$nuevonombreh=$nombreoriginal[3].'-'.$aleatorio.'.'.$ext;
$nuevonombrei=$nombreoriginal[4].'-'.$aleatorio.'.'.$ext;
}

if (isset (
$nuevonombre)) {
if (
$ext=="error") {$error_archivo="<br />- Formato de archivo no permitido.";}
if (
$tamano $maximo_tamano) {$error_archivo="<br />- El tama&ntilde;o de su archivo supera el m&aacute;ximo permitido.";}
}

//comprobamos si todos los campos fueron completados
if ($nombre!='' && $email!='' && $comentario!='' && $error_archivo=='') {

// copiamos el archivo en el servidor
copy($_FILES['archivo']['tmp_name'],'archivos/'.$nuevonombre);
copy($_FILES['archivod']['tmp_name'],'archivos/'.$nuevonombred);
copy($_FILES['archivoe']['tmp_name'],'archivos/'.$nuevonombree);
copy($_FILES['archivoh']['tmp_name'],'archivos/'.$nuevonombreh);
copy($_FILES['archivoi']['tmp_name'],'archivos/'.$nuevonombrei);

//armamos el html
$contenido '<html><body>';
$contenido .= '<h2>Contacto desde formulario</h2>';
$contenido .= '<p>Enviado el '.  date("d M Y").'</p>';
$contenido .= '<hr />';
$contenido .= '<p>Nombre: <strong>'.$nombre.'</strong>';
$contenido .= '<p>Email: <strong>'.$email.'</strong>';
$contenido .= '<p>Archivo N 1: <strong><a href="'.$url.'/archivos/'.$nuevonombre.'">'.$nuevonombre.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';
$contenido .= '<p>Archivo N 2: <strong><a href="'.$url.'/archivos/'.$nuevonombred.'">'.$nuevonombred.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';
$contenido .= '<p>Archivo N 3: <strong><a href="'.$url.'/archivos/'.$nuevonombree.'">'.$nuevonombree.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';
$contenido .= '<p>Archivo N 4: <strong><a href="'.$url.'/archivos/'.$nuevonombreh.'">'.$nuevonombreh.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';$contenido .= '<p>Archivo N 5: <strong><a href="'.$url.'/archivos/'.$nuevonombrei.'">'.$nuevonombrei.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';
$contenido .= '<p>Comentario: <strong>'.$comentario.'</strong>';
$contenido .= '<hr />';
$contenido .= '</body></html>';

// si todos los campos fueron completados enviamos el mail
mail ($direccion_envio"Contacto desde el formulario"$contenido"From: $nombre\nContent-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit"); 
$flag='ok';
$mensaje='<div id="ok">Su archivo ha sido cargado con &eacute;xito<br /> Gracias por Contactarnos</div>';
} else {
//si no todos los campos fueron completados se frena el envio y avisamos al usuario    
$flag='err';
$mensaje='<div id="error">- Los Campos Marcados Con * Son Requeridos. '.$error_archivo.'</div>';

}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>Contactenos - v2</title>

<style>
    body {
            font: 1em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;
            font-size: 76%;}
        
    #form {
          border: 3px double #eaeaea;
          background-color: #FFC;
          padding: 1em;
          width: 30em;
          margin: auto;}

    #form h2{
            font-size: 2em;
            margin: 0 0 0.5em 0;
            padding: 0;}


    #form .campo {
            border: 1px solid #999;
            padding: 0.3em;
            font-size: 1.5em;}

    #form .error {
            border: 1px solid #F00;
            padding: 0.3em;
            font-size: 1.5em;}

    #form .com {
            border: 1px solid #999;
            padding: 0.3em;
            font-size: 1.5em;
            width:18em;
            height: 10em;
            font: 1.5em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;}

    #form .com-error {
            border: 1px solid #F00;
            padding: 0.3em;
            font-size: 1.2em;
            width:18em;
            height: 10em;
            font: 1.5em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;}

  #form .boton {
            border: 2px solid #999;
            padding: 0.3em;
            font-size: 1.2em;
            width: 4em;}

     #error {
          border: 1px dashed #F00;
          background-color: #FFF;
          padding: 5px;}

     #ok {
        border: 1px dashed #060;
        background-color:#FFF;
        padding: 5px;}
            
</style>

    </head>
    <body>
    <div id="form">
        
<h2>Formulario de Contacto v2</h2>
<p>Ejemplo del formulario de contacto con env&iacute;o de archivo</p>

<? echo $mensaje/*mostramos el estado de envio del form */ ?>
<? 
if ($flag!='ok') { ?>
<form action="<?php echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
    <p>Nombre* <br />
    <input <? if (isset ($flag) && $_POST['nombre']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="nombre" value="<? echo $_POST['nombre'];?>" /></p>
    
    <p>Email* <br />
    <input <? if (isset ($flag) && $_POST['email']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="email"  value="<? echo $_POST['email'];?>" /></p>


    <p>Subir Archivo*<br />(Formatos permitidos: .gif, .jpg, .png, .zip) <br />
    <input name="archivo" type="file" id="archivo"  value="<? echo $_FILE['archivo'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    <input name="archivod" type="file" id="archivod"  value="<? echo $_FILE['archivod'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    <input name="archivoe" type="file" id="archivoe"  value="<? echo $_FILE['archivoe'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    <input name="archivoh" type="file" id="archivoh"  value="<? echo $_FILE['archivoh'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    <input name="archivoi" type="file" id="archivoi"  value="<? echo $_FILE['archivoi'];?><? if (isset ($flag) && $ext=='error' || $tamano $maximo_tamano) { echo 'class="error"';} else {echo 'class="campo"';} ?> /></p>
        
    <p>Comentario* <br />
    <textarea <? if (isset ($flag) && $_POST['comentario']=='') { echo 'class="com-error"';} else {echo 'class="com"';} ?> name="comentario"><? echo $_POST['comentario'];?></textarea></p>
    <p><input class="boton" type="submit" name="enviar" value="enviar" /></p>
    </form>
<? ?>
    </div> <!-- end form-->

    </body>
</html>

Etiquetas: subir, formulario
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 01:12.