Carga de archivos
Tengo el siguiente formulario para cargar un archivo:
echo " <form method=POST action=?tab=agregaritem enctype="multipart/form-data">rn";
echo " <input type=file name=foto></input><br><br>rn";
echo " <input type=hidden name=max_file_size value=100000>rn";
echo " <input type=submit value=Agregar> <input type=reset value=Borrar>rn";
echo " </form><br>rn";
Y para la subida del archivo el siguiente script:
if ($foto != "")
{
$filepath = "fotos/".$codigo.".jpg";
chmod($filepath, 0777);
if (!copy($foto, $filepath))
{
echo "No se pudo subir el archivo.";
exit;
}
}
Resulta, que observando el módem me doy cuenta de que el archivo si sube al servidor, y luego pasa tranquilamente a la siguiente página dando el mensaje de que el archivo se ha subido satisfactoriamente pero cuando busco el archivo por todo el host no lo puedo encontrar. Lo probé en mi PC con Windows y andaba bien. Sospecho que puede tener algo que ver con la ruta, pero he probado ponerlo en el mismo directorio (sacando "fotos/") y me ha dado el mismo resultado. Si alguien tiene idea de qué está pasando por favor que me avise. Gracias...
echo " <form method=POST action=?tab=agregaritem enctype="multipart/form-data">rn";
echo " <input type=file name=foto></input><br><br>rn";
echo " <input type=hidden name=max_file_size value=100000>rn";
echo " <input type=submit value=Agregar> <input type=reset value=Borrar>rn";
echo " </form><br>rn";
Y para la subida del archivo el siguiente script:
if ($foto != "")
{
$filepath = "fotos/".$codigo.".jpg";
chmod($filepath, 0777);
if (!copy($foto, $filepath))
{
echo "No se pudo subir el archivo.";
exit;
}
}
Resulta, que observando el módem me doy cuenta de que el archivo si sube al servidor, y luego pasa tranquilamente a la siguiente página dando el mensaje de que el archivo se ha subido satisfactoriamente pero cuando busco el archivo por todo el host no lo puedo encontrar. Lo probé en mi PC con Windows y andaba bien. Sospecho que puede tener algo que ver con la ruta, pero he probado ponerlo en el mismo directorio (sacando "fotos/") y me ha dado el mismo resultado. Si alguien tiene idea de qué está pasando por favor que me avise. Gracias...
Encontré la solución al problema: Resulta que el código tal como lo tenÃa originalmente funciona bien cuando navego la página en la máquina donde corro el Apache, la cual es mi PC. Pero al subir la web a un server donde no utilizan el sistema operativo Windows ocurre el problema. La cosa es que en la segunda parte de la página yo recuperaba la variable del archivo como POST, asÃ:
$foto = $HTTP_POST_VARS["foto"];
if ($foto != "")
{
$filepath = "fotos/".$codigo.".jpg";
chmod($filepath, 0777);
if (!copy($foto, $filepath))
{
echo "No se pudo subir el archivo.";
exit;
}
}
Y esto funciona bien cuando la PC que navega la página es la misma que la hostea, pero al subirla al server las cosas cambian, y la forma correcta de recuperar las variables es:
$foto = $HTTP_POST_FILES['userfile']['tmp_name'];
A partir de PHP 4.1.0 se puede utilizar la variable corta $_FILES y la cosa quedarÃa asÃ:
$foto = $_FILES['userfile']['tmp_name'];
Espero les ayude. Bye...
$foto = $HTTP_POST_VARS["foto"];
if ($foto != "")
{
$filepath = "fotos/".$codigo.".jpg";
chmod($filepath, 0777);
if (!copy($foto, $filepath))
{
echo "No se pudo subir el archivo.";
exit;
}
}
Y esto funciona bien cuando la PC que navega la página es la misma que la hostea, pero al subirla al server las cosas cambian, y la forma correcta de recuperar las variables es:
$foto = $HTTP_POST_FILES['userfile']['tmp_name'];
A partir de PHP 4.1.0 se puede utilizar la variable corta $_FILES y la cosa quedarÃa asÃ:
$foto = $_FILES['userfile']['tmp_name'];
Espero les ayude. Bye...
