Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/06/2003, 09:19
dardd
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 20 años, 10 meses
Puntos: 0
Josemi, gracias por tus indicaciones.Creo que todo el codigo es correcto, pero no hay manera de cambiar el directorio destino y que coja el mismo nombre de archivo.
Un saludo a todos de nuevo,quiero subir(copiar) un archivo pero si quieres cambiar la ruta y el
nombre del archivo usando variables no te deja,pero usando una cadena fija.Sabeis si usando $PHP_SELF en el action
se pueden usar las variables de formulario?Gracias.Las funciones van bien, ya que he tenido que convertir
\ por / que es la que acepta $nuevositio.Si pones $nuevositio=C:/asp/php/nom_fich.000 si que funciona.
Mas abajo os ponga las funciones.

C:\PHP\uploadtemp\php8.tmp

C:/PHP/uploadtemp/ -->directorio que quiero cambiar
php8.tmp -->nombre archivo uso una funcion para que sea el mismo que antes.
C:/PHP/uploadtemp/php8.tmp
NO SE HA PODIDO SUBIR EL FICHERO
-upload2.php:
<?
include('obtenerdirectoriobarra7.php');
include('obtenerarchivo.php');
if(!isset($cargar)){
?>
<HTML>
<HEAD>
<TITLE>Formulario de carga de ficheros(Copiar ficheros)</TITLE>
</HEAD>

<BODY>

-obetenerdirectoriobarra7.php:
<?

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

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

<?
$longitud=$longitud-$n;
$ruta=substr($ruta,0,$longitud);
return $ruta;
}
?>

-obtenerarchivo.php:
<?
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;
}
?>
<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>

<?

}

#Aquí realizamos la carga del fichero
if(isset($cargar)){
$directorio=obtenerdirectorio($nuevaruta);
$archivo=obtenerarchivo($elFichero);
echo "<br> $directorio";
echo "<br> $archivo <br>";
#Le damos al fichero un nuevo nombre
$nuevositio = $directorio . $archivo; //Eliges la ruta donde quieres que se copie el archivo con nuevo nombre
echo "$nuevositio <br>"; //Si solo pones nombre archivo los pone C:/asp/php/ejercicios(esto slo a mi)
#Lo copiamos //Para pasar la ruta de input=file(C:\asp\php\ejercicios por ejemplo) uso obtenerdirectoriobarra7.php
if(!copy($elFichero,$nuevositio)){
echo "NO SE HA PODIDO SUBIR EL FICHERO";
}
else{
echo "FICHERO SUBIDO CON ÉXITO";
}

}

?>