Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/12/2006, 16:44
Avatar de jpogsistem
jpogsistem
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 11 meses
Puntos: 4
Mostrar Mensaje mientras subo Archivo

Que tal masters,

Tengo algo que parece sencillo de resolver pero no lo he logrado.

Desde una página selecciono un archivo y un nombre standard, se abre una nueva ventana a la que se le envía todo por POST y es la que sube el archivo y registra la subida en la Base de datos.

Todo me funciona a la perfección. Lo que suscede es que la pagina que sube los archivos, no tiene nada de HTML y le coloqué un gráfico para que mostrara en los segundos ue demora la subida del archivo para que no se vea en blanco absoluto, pero no me muestra el gráfico.

He leido sobre esto y es algo que hay que hacer con buferes de salida para que se muestre algo mientras php hace un proceso, etc, he probado varias cosas pero la verdad no lo logro es tan simple como poder mostrar un mensaje de "subiendo" mientras la página hace el proceso.


Se podrás solucionar esto con algo como :
Código PHP:
ob_start(); 
echo 
"Loading.................";
ob_end_clean(); 
La cuestión es que no se si es así exactamente y no se donde colocarlo.


Este es el form que envía lo que se va a subir :

Código PHP:
<form action="new_claim_file.php"
method="post" enctype="multipart/form-data" name="form2" target="New Claim File"
id="form2" onsubmit="estado=verificarFormu(this);if(estado==true) 
window.open('new_provider_file.php', 'New Claim File'); return estado"

Y este es el code que sube el archivo y registra en la Base de Datos :

Código PHP:
<?
$standard
=$_POST['standard_name*'];
$c_id=$_POST['claim_id'];
//Buscamos si el caso tiene archivos con ese standard name y seleccionamos el más reciente -El de mayor ID-
mysql_select_db($database_domain$domain);
$result3 mysql_db_query("domain","SELECT name from claim_file WHERE claim_id='$c_id' AND claim_file_id IN (SELECT Max(claim_file_id) from claim_file WHERE name like'$standard%')");
while(
$row mysql_fetch_array($result3)) 

$last_name=$row["name"];
}
echo 
$last_name;

$array_name explode("-"$last_name);
//Tomamos el nombre antes del -
$name_last_name=$array_name[0];

//Tomamos el valor del consecutivo y lo aumentamos en 1
$consec=$array_name[1]+1;

//Armamos el nuevo standard_name completo (sin extensión) para el nuevo archivo
$new_name=$standard."-".$consec;

//Hacemos la busqueda del country del proveedor para construir la ruta de subida de los archivos
mysql_select_db($database_domain$domain);
$result2 mysql_db_query("domain","SELECT provider_id, country, company_name, provider_id FROM provider WHERE company_name='".$_POST['provider']."'");
while(
$row mysql_fetch_array($result2)) 
{
$claim_id=$_POST['claim_id'];
$country=$row["country"];
$company_name=$_POST['provider'];

//Inicializamos la variable $file_name
$file_name="";
//Le asignamos el valor que recibimos del form

$file_name=$_FILES['input_file*']['name'];

//Tomamos el nombre del archivo
$name=$new_name;

//Tomamos la extensión del archivo
$extension=substr($file_namestrlen($file_name)- 3);
$namec=$new_name.".".$extension;
//Construimos la ruta a la que se subirá el archivo
$path="../../files/domain/$country/Providers/$company_name/Claims/$claim_id/";

//Tomamos valores para insertar en la BD los datos del file
$upload_date date("Y/m/d"); 
$upoload_hour_2 =date("H:i:s"); 
$file_size round$_FILES['input_file*']['size'] / 10242);
$uploaded_by=$_SESSION['usuario_name'];

//Mensaje en caso de que no se suba el archivo correctamente
if (!copy($HTTP_POST_FILES['input_file*']['tmp_name'],$path.$namec)){
   
$subido="yes";
   echo 
"Failed to copy $file_name...\n";
   }

//Si el archivos se sube correctamente insertamos los datos del archivo en la BD
if ($subido!="yes")
{
$insercion=mysql_db_query ("domain","INSERT INTO claim_file (claim_id, path, file_name, 
upload_date, upload_hour, file_size, uploaded_by, name, extension)
VALUES
('$claim_id','$path','$namec','$upload_date', '$upoload_hour_2', '$file_size','$uploaded_by', '$name', '$extension')"
); 

//Cerramos la ventana y refrescamos la ventana padre
echo "<script>window.opener.location.reload(); window.close();</script>";exit;
}
?>
__________________
EL LIMITE ES EL UNIVERSO