Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2003, 07:13
dardd
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 20 años, 11 meses
Puntos: 0
Problema al subir archivos y operar con variables form

Hola a todos los del foro, estoy intentando subir un archivo. En un principio funciona pero he querido cambiar un par de cosas como poder elegir el directorio de destino(en forma local) y que me copie el archivo con el mismo nombre(esto es provisional).Si en una pagina uso $PHP_SELF ¿no puedo usar las variables de formulario para luego usarlas en funciones?.Alguien tiene alguna sugerencia?
Me da el siguiente error(logico):
Notice: Undefined variable: nuevaruta in C:\asp\php\upload.php on line 39
Notice: Undefined variable: elFichero in C:\asp\php\upload.php on line 40

-Upload.php:

<?
include('obtenerdirectorio.php');
include('obtenerarchivo.php');
if(!isset($cargar)){

?>
<HTML>
<HEAD>
<TITLE>Formulario de carga de ficheros</TITLE>
</HEAD>

<BODY>

<FORM NAME="elForm" METHOD="POST"
ACTION="<? echo $PHP_SELF; ?>?cargar=1"
ENCTYPE="multipart/form-data">
<U><I><B><H1>Elija el archivo que va a ser copiado:</H1></B></I></U><BR>
<TABLE WIDTH="80%" STYLE="font-family:Arial;font-size:9pt;">

<TR>
<TD ALIGN="LEFT"><INPUT TYPE="FILE" NAME="elFichero" size=75></INPUT></TD>
</TR>

<TR>
<TD ALIGN="LEFT"><INPUT TYPE="FILE" NAME="nuevaruta" size=75></INPUT></TD>
</TR>

<tr><td> </td></tr>
<tr><td> </td></tr>

<TR>
<TD ALIGN="LEFT"><INPUT TYPE="SUBMIT" VALUE="Subir el fichero">
</TR>

</TABLE>

</FORM></BODY></HTML>

<? $directorio=obtenerdirectorio($nuevaruta);
$archivo=obtenerarchivo($elFichero); ?>
<?

}

#Aquí realizamos la carga del fichero
if(isset($cargar)){

#Le damos al fichero un nuevo nombre
$nuevositio = $directorio.$archivo;

#Lo copiamos
if(!copy($elFichero,$nuevositio)){
echo "NO SE HA PODIDO SUBIR EL FICHERO";
}
else{
echo "FICHERO SUBIDO CON ÉXITO";
}

}

?>

-Obtenerdirectorio.php:
<HTML>
<HEAD>
<TITLE> Manejo de cadenas </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<?

function obtenerdirectorio($nuevaruta)
{
//Programa para cortar una cadena para obtener el directorio anterior
$path="$nuevaruta";
$n=0;
$longitud=strlen($path);
for($i=0;$i<=$longitud;$i++)
{

$matriz[0][$i]=substr($path,$i,1);

}
for($i=$longitud;$i>=0;$i--)
{
$n=$n+1;
if ($matriz[0][$i] == '\\')
{
break;
}
}
$n=$n-2;?><BR>

<?
$longitud=$longitud-$n;
$path=substr($path,0,$longitud);
return $path;
}
?>
</BODY>
</HTML>

-obtenerarchivo.php:

<HTML>
<HEAD>
<TITLE> Obtener archivo de una cadena </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<? function obtenerarchivo ($elFichero)
{
//Programa para cortar una cadena para obtener el archivo.
$path="$elFichero";
$n=0;
$longitud=strlen($path);
for($i=0;$i<=$longitud;$i++)
{

$matriz[0][$i]=substr($path,$i,1);
echo "{$matriz[0][$i]}";

}
for($i=$longitud;$i>=0;$i--)
{
$n=$n+1;
if ($matriz[0][$i] == '\\')
{
break;
}
}
$n=$n-1;?><BR>

<?
$longitud=$longitud-$n;
$longitud=$longitud+1;
$path=substr($path,$longitud);
return $path;
}
?>
</BODY>
</HTML>