Ver Mensaje Individual
  #14 (permalink)  
Antiguo 30/05/2006, 11:49
Avatar de seik!
seik!
 
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 17 años, 10 meses
Puntos: 6
Respuesta

asi es... trabajr con el URL nada mas es mas conveniente en el utilizacion del recurso base dato... tienes k crear una carpeta virtual donde kedaran los documentos k subas...
primero creamos el form donde subiras tu archivo... y lo enviamos a el archivo php llamado archivo_ag.php
-----------------------------------------------------------------------
<form method="POST" enctype="multipart/form-data" name="form" action="archivo_ag.php" >

ID:
<input type="text" name="id">

Adjunte documento:
<input type="file" name="archivo" size="20" >

<input type="submit" value="Enviar">
<input type="button" class="button" name="cmdCancelar" value="Cancelar" onclick="javascript:window.close();">
<form>

---------------------------------------------------------------------

generamos el archivo "archivo_ag.php" aki procesaremos el formulario completo (solo pondre los campos que utilizaremos)
ahi va.....
---------------------------------------------------------------------
//descatamos los datos del form//

$id=$_POST["id"];


<?
// Configuración //
///////////////////
// $extensiones=array("1ªext","2ªext","....");
// Aqui debes poner las extensiones que NO admitas
// por ejemplo si no quieres admitir .html , .exe ni .gif :
// $extensiones=array("html","exe","gif");
///////////////////////////////////////
$extensiones=array("html","exe","php","","1","2"," 3","4","5","6","7","8","9","0","config","dll","inc ");
/////////////////
// $path="/ruta/ta/ta";
// Si el server rula bajo LinuX toda la ruta completa /var/etc/..
// Si rulas bajo WindoWs C:/midirectorioroot/tal..
// Nota: Sin el último / ej: C:/miweb NO C:/miweb/
////////////////
$path="C:/Inetpub\wwwroot\sec2\oficios";
$nombre=$HTTP_POST_FILES['archivo']['name'];
$tamanio=$HTTP_POST_FILES['archivo']['size'];
$tipo=$HTTP_POST_FILES['archivo']['type'];
$var = explode(".","$nombre");
$num = count($extensiones);
$valor = $num-1;

for($i=0; $i<=$valor; $i++) {
if($extensiones[$i] == $var[1]) {
echo "Archivo no admitido <br>
input type='button' class='button' name='cmdsalir' value='Salir' onclick='javascript:window.close();'> ";
exit;
}
}

$nombre_archivo = $_POST["num_oficio"].substr($nombre, strlen($nombre) - 4, 4);

if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name']))
{
copy($HTTP_POST_FILES['archivo']['tmp_name'], "$path/$nombre_archivo");
echo "Datos ingresados correctamente!";
}
else
{
echo "Error al subir el archivo";
}
?>
******
<CENTER>
<input type="button" name="cmdaceptar" value="Aceptar" class="button" onclick="javascript:window.close();">
</CENTER>

------------------------------------------------------------------------

veras, esta linea

$nombre_archivo = $_POST["id"].substr($nombre, strlen($nombre) - 4, 4);

guarda en la variable que debes crear llamada $nombre_archivo, el nombre de tu "id" del formulario conkatenada con la enxtension del documento... nombre. extension
ej: luis.jpg

la idea es poder hacerlo identificable asociado con un documento en particular... ej: los datos de alguien y esta es su foto
por lo cual es fundamental mantener el archivo ligado a la id del documento para su futura visualizacion. ademas nos aseguramos k no existan repetidos.. ya k en la base datos no lo permitira..


luego guardamos el campo en el base datos
ej:

$query = "INSERT INTO tutabla (id,nombre_archivo) VALUES ('".$id."','".$nombre_archivo."')";

y listo ...!!

ahora veremos si kisieras hacer una consulta en la base datos y listar el resultado con el fin de poder descargar el archivo k esta en la carpeta virtual... :D!

------------------------------------------------------------------------
creamos la consulta a la base datos ... creo eso ya lo sabes, luego imprimes el resultado y listo... pero ojo la impresion del campo nombre_archivo es asi...

el orden de la direccion del "a href" tiene el siguiente orden...

"servidor/carpeta_virtual/nombre_archivo"

------------------------------------------------------------------------
<a href="<?php print(localhost/archivos/".$row["nombre_archivo"]);?>" target="_blank"><?php print($row["nombre_archivo"]);?>
------------------------------------------------------------------------

yo manejo el resultado de mi consulta en la variable $row
... solo por si no lo comprendias....

bueno espero sirva... no garantizo que funcione... ya k yo lo implemento pero con mucho mas codigo... esto es solo aproximacion real a lo k deberia ser... pero yo creo k funciona.... suerte ... espero tu respuesta...
atte
sEIK! -Chile-