Foros del Web » Programando para Internet » PHP »

Puedo guardar el path de un archivo en una variable de sesion?

Estas en el tema de Puedo guardar el path de un archivo en una variable de sesion? en el foro de PHP en Foros del Web. Hola gente, aqui estoy de nuevo. necesito de su valiosa ayuda, pasa que estoy enviando un fichero en un formulario y lo guardo en mi ...
  #1 (permalink)  
Antiguo 07/12/2006, 23:00
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Puedo guardar el path de un archivo en una variable de sesion?

Hola gente, aqui estoy de nuevo.

necesito de su valiosa ayuda, pasa que estoy enviando un fichero en un formulario y lo guardo en mi base de datos, pero sucede que unicamente me guarda los datos y el nombre del fichero, pero no me lo guarda en la carpeta (no lo sube al servidor).

Mi pregunta es se puede guardar el path del fichero en nuna variable de sesion y luego recuperarla en equis pagina y moverlo a la carpeta de destino, no se si me explique, pero aqui les comento:

tengo un formulario donde recojo los datos y adjunto el archivo

captura.php

<form name="forma" action="muestra.php" method="post" enctype="multipart/form-data">
Título:
<input name="titulo" type="text" value="<? echo $titulo; ?>">
Articulo:
<textarea name="articulo" cols="80" rows="10"><? echo $articulo; ?></textarea><br>
Archivo:
<input name="fichero" type="file" value="<? echo $fichero; ?>"><br>
<input name="Submit" type="submit" value="Previsualizar datos">

luego en otra pagina recojo los datos con $HTTP_POST_VARS y los muestro:

muestra.php

//inicializo la sesion
session_start();

$titulo = $HTTP_POST_VARS["titulo"];
$articulo = $HTTP_POST_VARS["articulo"];
$fichero = $HTTP_POST_FILES['fichero']['name'];

Titulo:<? echo $titulo; ?><br>
Articulo:<? echo $articulo=nl2br($articulo); ?><br>
Archivo adjunto:<?php echo $fichero . "<br>";

esta parte es la que utilizo para ver si se cargo el archivo
if (is_uploaded_file($HTTP_POST_FILES['fichero']['tmp_name']))
{
//el nombre del archivo

guardo el nombre del archivo y el path en variables de sesion:

$local = $HTTP_POST_FILES['fichero']['name'];
//Este es el nombre temporal del archivo
$remoto = $HTTP_POST_FILES['fichero']['tmp_name'];
$_SESSION["arch_local"]=$local;
$_SESSION["arch_remoto"]=$remoto;

pongo letreros para ver que me esta trayendo:

echo "Nombre del archivo (variable de sesion): $local<br>";
echo "Nombre del archivo temporal (variable de sesion): $remoto";
$subio = true;
}
?>

y estos valores los paso a una segunda pagina donde si los datos estan correctos los guardo en la base de datos:

<a href='captura.php?titulo=<? echo $titulo; ?>&articulo=<? echo $articulo; ?>&fichero=<? echo $local; ?>'>Regresar y corregir</a>
&nbsp;|&nbsp;
<a href='guarda.php?titulo=<? echo $titulo; ?>&articulo=<? echo $articulo; ?>&fichero=<? echo $local; ?>'>
Guardar los datos</a></center>

en esta pagina guardo los datos:

guarda.php

session_start();
//$fichero=$SESSION["fichero"];
$user=$SESSION["login"];
$local=$_SESSION["arch_local"];
$remoto=$_SESSION["arch_remoto"];

//muestro las variables para ver que me esta trayendo
echo "local vale: $local<br>";
echo "remoto vale: $remoto<br>";

//declaramos las variables para hacer la conexion a la bd
$Host = "localhost";
$User = "xxxx";
$Password = "";
$DBName = "xxxxx";

$fecha=date("Y-m-d");
$hora = date("H:i:s");

//nos conectamos a la base de datos
$connect=mysql_connect($Host,$User,$Password);
//Seleccionamos la base
mysql_select_db($DBName,$connect);
//insertamos los datos
$ssql = "INSERT INTO noticias(titulo,articulo,imagen,hora,fecha) values ('$titulo','$articulo','$local','$hora','$fecha')" ;
mysql_db_query($DBName, $ssql);

aqui le indico lal ruta a donde quiero que me guarde el archivo:
$ruta= "./magenesbd/".$HTTP_POST_FILES['local']['name'];
move_uploaded_file($HTTP_POST_FILES['local']['tmp_name'], $ruta);
echo "el archivo $local fue cargado con exito<br>";
echo "y el archivo temporal $remoto tambien<br>";
$subio = true;

?>
Los datos se guardaron satisfactoriamente!
</BODY>
</html>

supuestamente me manda el mensaje que todo esta bien, voy a la base de datos y checo lo que guardo y me ha guardado el nombre del archivo, pero voy a la carpeta donde deberia estar el archivo y nada, que no no hay nada!!!

ayudenme por favor, no se tal vez no estoy utilizando bien las variables o no se puede hacer no, o tal vez me puedan orientar sobre otro metodo.

no se mucho de PHP, pero en este foro he aprendido bastantito.

echenle una leida por favor y gracias por su ayuda.
  #2 (permalink)  
Antiguo 08/12/2006, 02:28
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Puedo guardar el path de un archivo en una variable de sesion?

No sé si eso que intentas hacer se puede o no. Para salir de dudas, por qué no intentas subir el fichero en la página destino del formulario (en este caso, muestra.php)? Y, en el tercer fichero, por qué haces referencia al fichero con otro nombre? Es decir, pasas de $HTTP_POST_FILES['fichero'] a $HTTP_POST_FILES['local'].

Otra cosa es que los arrays $HTTP_xxx están obsoletos. Utiliza mejor $_POST, $_FILES y similares.

Un saludo
  #3 (permalink)  
Antiguo 09/12/2006, 19:56
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Puedo guardar el path de un archivo en una variable de sesion?

Antes que nada gracias "jerkan" por atender este llamado de ayuda, pense que nadie se habia dignado en atender este llamado.

El problema es que ya no se que hacer o no se me estan dando las cosas, he intentado subir el archivo con un formulario y enviarlo a una segunda pagina y ahi guardarlo y todo me sale bien.

El problema es que no quiero guardar este fichero en la base de datos hasta que el usuario no este seguro de que quiere guardar sus datos

Sobre lo de subir el fichero en la segunda pagina lo voy a probar, luego te cuento.

Y en el tercer fichero hago referencia a $HTTP_POST_FILES['local'] porque "local" lo guarde en una variable de nombre $_SESSION["arch_local"]=$local; segun yo, y ese nombre lo intento guardar en mi base de datos, pero la mera verdad es que no se si lo que estoy intentando hacer es correcto, voy a intentar subirlo con $_POST o $_FILES como me orientas, luego te cuento.

oye, gracias por responder, espero salir de esta.

saludos y muchas gracias.
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:23.