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>
|
<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.