
09/06/2003, 09:19
|
| | Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 21 años, 9 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";
}
}
?> |