Foros del Web » Programando para Internet » PHP »

upload de 2 archivos en php

Estas en el tema de upload de 2 archivos en php en el foro de PHP en Foros del Web. Hola tengo el siguiente formulario con los campos; fechapublicación = "fechapub" archivo español= "file_es" archivo ingles= "file_eng" descripcion= "descripcion" OK, mi codigo html antes del ...
  #1 (permalink)  
Antiguo 08/03/2004, 14:49
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta upload de 2 archivos en php

Hola tengo el siguiente formulario con los campos;

fechapublicación = "fechapub"
archivo español= "file_es"
archivo ingles= "file_eng"
descripcion= "descripcion"

OK, mi codigo html antes del envio es; y que luego va a process.php donde proceso todo.

<form action="process.php" method="post" enctype="multipart/form-data" name="datos">
<table width="450" cellpadding="0" cellspacing="0" id="s">
<tr>
<td colspan="3" class="subtitulos">&nbsp;</td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="3" class="subtitulos">&nbsp;&nbsp;&nbsp;&nbsp;Datos Personales</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="14">&nbsp;</td>
<td width="156" class="textobold">Fecha de publicaci&oacute;n:</td>
<td width="278" class="textos"><input name="fechapub" type="text" id="fechapub" size="11" maxlength="10" tabindex="14">
&nbsp;<a href="javascript:cal1.popup();"><img src="../images/calendario/cal.gif" width="16" height="16" border="0" alt="Calendario"></a> </td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>Archivo Espa&ntilde;ol: </td>
<td><input name="file_es" type="file" class="textos" id="file_es"></td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>Archivo Ingl&eacute;s: </td>
<td><input name="file_eng" type="file" class="textos" id="file_eng"></td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>Descripci&oacute;n</td>
<td><textarea name="descripcion" cols="30" rows="6" id="descripcion" tabindex="15"></textarea></td>
</tr>
<tr bgcolor="#FFFFFF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="#FFFFFF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input name="Submit" type="submit" class="subtitlelink" value="Enviar Datos" OnClick="return checkfields()" tabindex="17"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="3">&nbsp;</td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="3"><? include ( "../../include/footer.php" ) ?></td>
</tr>
</table>
</form>



ok yo hago esto con un archivo pero ya cuando se presentan 2 no sé como hacerlo, pueden uds aconsejarme?
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.

Última edición por andinistas; 08/03/2004 a las 14:50
  #2 (permalink)  
Antiguo 08/03/2004, 15:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues leer este capítulo del manual oficial de PHP donde se explica como trabajar con múltiple uploads:

http://www.php.net/manual/en/feature...d.multiple.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 08/03/2004, 21:38
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

Hola bueno creo que he hecho lo correcto cluster


primera pagina donde meto la info del registro

<table width="450" cellpadding="0" cellspacing="0" id="s">
<tr>
<td colspan="3" class="subtitulos">&nbsp;</td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="3" class="subtitulos">&nbsp;&nbsp;&nbsp;&nbsp;Publica ci&oacute;n de Informes </td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="14">&nbsp;</td>
<td width="156" class="textobold">Fecha de publicaci&oacute;n:</td>
<td width="278" class="textos"><input name="fechapub" type="text" id="fechapub" size="11" maxlength="10" tabindex="14">
&nbsp;<a href="javascript:cal1.popup();"><img src="../images/calendario/cal.gif" width="16" height="16" border="0" alt="Calendario"></a> </td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>Archivo Espa&ntilde;ol: </td>
<td><input name="file_es" type="file" class="textos" id="file_es"></td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>Archivo Ingl&eacute;s: </td>
<td><input name="file_eng" type="file" class="textos" id="file_eng"></td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="#FFFFFF" class="textobold">
<td>&nbsp;</td>
<td>Descripci&oacute;n</td>
<td><textarea name="descripcion" cols="30" rows="6" id="descripcion" tabindex="15"></textarea></td>
</tr>
<tr bgcolor="#FFFFFF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="#FFFFFF">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input name="Submit" type="submit" class="subtitlelink" value="Enviar Datos" OnClick="return checkfields()" tabindex="17"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="3">&nbsp;</td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="3"><? include ( "../../include/footer.php" ) ?></td>
</tr>
</table>


ok ahora el archivo process.php

Código PHP:
<?
include ("../../include/head.php");
?>
<?
include ("../../include/conex.php");

$uploaddir "../informes/"
$uploadfile1 $uploaddir $_FILES['file_es']['name']; 
$uploadfile2 $uploaddir $_FILES['file_eng']['name']; 
   
   if (!
move_uploaded_file($_FILES['file_es']['tmp_name'], $uploadfile1)) { 
       print 
"ERROR: File is invalid"
       
print_r($_FILES); 
   } 

   if (!
move_uploaded_file($_FILES['file_eng']['tmp_name'], $uploadfile2)) { 
       print 
"ERROR: File is invalid"
       
print_r($_FILES); 
   } 


$file_es $_FILES['file_es']['name'];
$file_eng $_FILES['file_eng']['name'];

//inserto los datos q me traigo del form datos inclusive el nombre y la extension de los archivos, para colocarlos en su respectiva casilla
$sql =mysql_query("INSERT INTO $tablainformes (fechapub, file_es, file_eng, descripcion) VALUES ('$fechapub', '$file_es', '$file_eng', '$descripcion')") or die(mysql_error());

$result mysql_query($sql);

if (!
$result)
?>
<p class="subtitulos">Se ingresaron correctamente los siguientes Datos:</p>
<table width="450" cellpadding="0" cellspacing="0" id="s">
  <tr>
    <td colspan="3" class="subtitulos">&nbsp;</td>
  </tr>
  <tr bgcolor="#CCCCCC">
    <td colspan="3" class="subtitulos">&nbsp;&nbsp;&nbsp;&nbsp;Datos Personales</td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td width="14">&nbsp;</td>
    <td width="120" class="textobold">Fecha de publicaci&oacute;n:</td>
    <td width="314" class="textos"><?=$fechapub?></td>
  </tr>
  <tr bgcolor="#FFFFFF" class="textobold">
    <td>&nbsp;</td>
    <td>Archivo Espa&ntilde;ol: </td>
    <td><?=$file_es?></td>
  </tr>
  <tr bgcolor="#FFFFFF" class="textobold">
    <td>&nbsp;</td>
    <td>Archivo Ingl&eacute;s: </td>
    <td><?=$file_eng?></td>
  </tr>
  <tr bgcolor="#FFFFFF" class="textobold">
    <td>&nbsp;</td>
    <td>Descripci&oacute;n</td>
    <td><?=$descripcion?></td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td colspan="3"><div align="center"><a href="home.php" class="subtitulos">Volver a la p&aacute;gina principal</a> </div></td>
  </tr>
  <tr bgcolor="#FFFFFF">
    <td colspan="3"><? include ( "../../include/footer.php" ?></td>
  </tr>
</table>
<?
    
}
else
    {
    echo 
"No se han insertado los datos debido a un error :o(";
    }
?>
ahora solo me faltaría hacer el codigo de borrar y actualizar (aunque creo que volviendo a subir los archivos con el mismo nombre el sobreescribe los anteriores)

__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.

Última edición por andinistas; 08/03/2004 a las 22:13
  #4 (permalink)  
Antiguo 08/03/2004, 23:32
 
Fecha de Ingreso: agosto-2002
Mensajes: 80
Antigüedad: 21 años, 8 meses
Puntos: 0
Es necesario eliminarlos?

Acaso los archivos no los toma de un directorio temporal creado por el servidor? si no es así, como haces para subirlo al directorio que vos queres?, podrias responderme?
Gracias.
  #5 (permalink)  
Antiguo 08/03/2004, 23:36
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
r

ok yo estoy manejando un directorio que especifico asi:

Código PHP:
$uploaddir "../informes/"
es una carpeta llamada informes

lo que estoy haciendo ahora son unas pruebas sobre uploads de 2 archivos, ahora me encuentro con el dilema a la hora de descargar, si coloco enlace directo no me sirve porque sino los usuarios empiezan a reenviar el url y se bajan el documento y no me conviene ya que mi sistema tiene login y password pagos $$.


estaba haciendo el siguiente code para descargar un archivo de acuerdo a su $id

Código PHP:
$host="localhost";
$user="123";
$pass="123";
$db="db";
$tabla="informes";

//Conectamos a la base de datos

$link mysql_connect ($host$user$pass);
mysql_select_db($db$link);


$idinforme $_GET[idinforme];

$query "SELECT * FROM $tabla WHERE idinforme = $idinforme";
$result mysql_db_query ($db$query$link);

while (
$registros=mysql_fetch_array($result)){
$url $registros['file_es']; // suponemos que el campo de tu BBDD q contiene el URL se llama url ... 
$archivo $registros[file_es];
$path ="../informes";
}

//Descargamos el archivo

Header ("Pragma: no-cache");
Header ("Expires: 0");
Header ("Cache-Control: no-cache, no-store, must-revalidate, post-check=0, pre-check=0");
Header ("Content-type: application/force-download");
Header "Content-Length: ".filesize($url));
Header"Content-Disposition: attachment; filename=$archivo");
readfile($path/$url); 
pero en realidad lo que me descarga es file_es.php con cero bytes
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #6 (permalink)  
Antiguo 09/03/2004, 02:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,
Código PHP:
readfile($path/$url); 
$path/$url es dividir matematicamente hablando $path entre $url. Y lo que quieres es crear la cadena con el / en medio. Asi que creo que lo que querias era:
Código PHP:
readfile("$path/$url");
// o
readfile($path.'/'.$url); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 09/03/2004, 02:47
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

ok josemi, gracias por tu idea!


Código PHP:
$idinforme $_GET[idinforme];

//Sentencia sql (sin limit)
$_pagi_sql "SELECT * FROM $tablainformes WHERE idinforme = $idinforme";


while (
$registros=mysql_fetch_array($_pagi_result)){
$idinforme $registros[idinforme];
$archivo $registros[file_es]; 

}

//ruta directorio donde se almacenan todos los files
$path "../informes/";

//compongo el camino + el nombre del archivo
$compuesto ="$path/$archivo";

$filename="$archivo";
    
header ("Pragma: no-cache");
    
header ("Expires: 0");
    
header ("Cache-Control: no-cache, no-store, must-revalidate, post-check=0, pre-check=0");
    
header ("Content-type: application/force-download");
    
header ("Content-Disposition: attachment; filename=$filename");
    
readfile($compuesto); 
?> 

ok me ha servido asi :o)
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
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 05:35.