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>