PHP - Renombrar archivos con PHP

   
Vista:

Renombrar archivos con PHP

Publicado por César (8 intervenciones) el 02/06/2017 16:19:20
Buenas tardes, compañeros. Quisiera pedirles ayuda con un pequeño problema que tengo.
He creado una página para compartir archivos, y que cada archivo se vea listado en tablas HTML y a la par su enlace de descarga.
Ahora no solamente quiero dejarlo ahí, pues a la vez quisiera añadirle otro espacio a la tabla para editar el archivo, en este caso renombrarlo, pero ahí ya no tengo idea de cómo hacerlo. Quisiera que al presionar el enlace de «Editar» se redireccione a un formulario donde aparezca el nombre del archivo y un input del nuevo nombre, pero no encuentro forma.

El código de las tablas es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html>
<meta name="viewport" content="width=300px"/>
<body bgcolor="yellow"
link="#0000ff"
vlink="#0000ff"
alink="#0000ff">
<?php
$dir="files/";
$lista=scandir($dir);
foreach($lista as $file){
if(is_file($dir.$file)){
$partes=explode(".",$file);
$extension=$partes[count($partes)-1];
unset($partes[count($partes)-1]);
$filename=implode(".",$partes);
?>
 
<table border>
<tr><th>Nombre</th><th>Descargar</th></tr>
<tr><td rowspan="2" width=110><?php echo $filename?></td><td width=110><?php echo '<a href="files/'.$file.'">'.Descargar.'</a></td></tr>'?>
<tr><td>-->AQUI EL ENLACE DE EDITAR<--</td></tr>
<?php
}
}
?>
</body>
</html>

Espero puedan ayudarme. Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Renombrar archivos con PHP

Publicado por kip (828 intervenciones) el 03/06/2017 05:12:46
Hola, algo sencillo podria ser crear un pequeño formulario por cada archivo y desde alli cambiar el nombre, tal vez algo asi podria servirte:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
$dir = "files/";
if (isset($_POST['nuevo_nombre']) && ! empty($_POST['nuevo_nombre'])) {
    $archivo = $dir . base64_decode($_POST['archivo']);
    $nuevo_nombre = $_POST['nuevo_nombre'];
    if (is_file($archivo)) {
        $ext = explode('.', $archivo)[1];
        $nuevo_nombre = $dir . $nuevo_nombre . '.' . $ext;
        @rename($archivo, $nuevo_nombre);
    }
}
?>
<html>
<meta name="viewport" content="width=300px"/>
<body bgcolor="yellow" link="#0000ff" vlink="#0000ff" alink="#0000ff">
<?php
$lista = scandir($dir);
foreach ($lista as $file) {
    if (is_file($dir.$file)) {
        $viejo_nombre = base64_encode($file);
        $filename = explode(".", $file)[0];
?>
<table border>
<tr><th>Nombre</th><th>Descargar</th></tr>
<tr><td rowspan="2" width=110><?php echo $filename?></td><td width=110><?php echo '<a href="files/'.$file.'">Descargar</a></td></tr>'?>
<tr><td>
    <form action="#" method="POST">
        <input type="text" name="nuevo_nombre">
        <input type="hidden" value="<?php echo $viejo_nombre;?>" name="archivo" readonly>
        <button>Cambiar nombre</button>
    </form>
</td></tr>
<?php
    }
}
?>
</body>
</html>

Ten en cuenta que el usuario debe tener los permisos sobre estos archivos o carpeta para editar los nombres de estos.

He usado para ocultar el nombre y extension completa del archivo la funcion base64_encode y para decodificarla base64_decode, la verdad es que lo he hecho por que queria que no sea visible la extension a simple vista pero de todas formas puedes quitar estas funciones y trabajar normalmente.

Pruebalo y nos avisas si es lo que buscabas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Renombrar archivos con PHP

Publicado por César (8 intervenciones) el 03/06/2017 06:48:16
Hola, Kip. Muchas gracias por tu ayuda. Copiaré el código y lo probaré.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de [abZeroX]

Renombrar archivos con PHP

Publicado por [abZeroX] (87 intervenciones) el 03/06/2017 05:22:00
Hola César, tome tu código y le agregue la parte que buscabas espero te sea de ayuda, obviamente se puede mejorar.

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Renombrar archivos con PHP

Publicado por César (8 intervenciones) el 03/06/2017 06:49:59
Hola, abZeroX. He descargado el código y ha funcionado perfectamente. Muchísimas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar