Comunidad de diseño web y desarrollo en internet online

Copiar ficheros de un directorio a otro con PHP

Citar            
MensajeEscrito el 13 Jul 2010 04:01 pm
Hola, tengo un problema al realizar el copiado de un fichero del directorio origen al directorio destino. La función es tan simple como esto:

Código:

function copia_fichero($nombre)
{
copy("../clientes/clientes.php","../clientes/".$nombre."/");
}

Siendo $nombre el nombre del directorio, que evidentemente ya existe, y clientes.php el fichero que quiero copiar.

Esta función se esta ejecutando en el panel de administración de la web, es decir, en http://www.empresa.com/admin. El fichero se encuentra en http://www.empresa.com/clientes/ y tiene que copiarse en http://www.empresa.com/clientes/xyz/

Me da los siguientes fallos:

Warning: copy(..clientes/proinvitosa-sl/) [function.copy]: failed to open stream: No such file or directory in C:\AppServ\www\empresa\funciones.php on line 411

siendo la linea 411 esta:

Código:

copy("../clientes/clientes.php","..clientes/".$nombre."/");

Y también, este otro:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\empresa\funciones.php:411) in C:\AppServ\www\empresa\admin\cliente_nuevo.php on line 33

Bueno, este otro es que en la linea 33 hay un header que no se realiza al suceder el primer warning.

Yo creo que me he equivocado al construir las rutas de los parámetros de la función copy, pero por más que las miro no encuentro el fallo.

Los permisos del directorio son 0777 ya que lo he creado de esta manera:

mkdir("../clientes/".$nombre, 0777);

Por lo que no se donde está el fallo y encima el error dice que es de permisos.

Por Perico19

39 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Jul 2010 01:49 pm
Hola

Amigo lo que sucede es que te falta asignarle el nombre al archivo resultante de la copia, puedes ponerle el mismo u otro:

Código PHP :

copy("../clientes/clientes.php","..clientes/".$nombre."/clientes.php");


Saludos

Por Quarterback

171 de clabLevel

1 tutorial

Genero:Masculino  

Santa Marta, Colombia

chrome
Citar            
MensajeEscrito el 16 Jul 2010 12:29 am
Una función que hice rapido y para despejarme la mente unos 5 mins del proyecto que estoy haciendo

Código PHP :

<?php

function copy_dir($desde, $destino, $patron = "*.*")
{
   $errors = array();
   if (!is_dir($desde))
   {
      $errors[] = "El directorio $desde no existe";
      return $errors;
   }

   if (!is_dir($destino))
   {
      $exito = @mkdir($destino, 0777, true);
      if (!$exito)
      {
         $errors[] = "El directorio $destino no existe y no se pudo crear.";
         return $errors;
      }
   }
   $files = glob($desde . $patron);
   foreach ($files as $file)
   {
      if ($file != "..")
      {
         $filename = basename($file);
         if (!@copy($file, $destino . $filename))
         {
            $errors[] = $filename . "no se pudo copiar en "  . $destino;
         }
      }
   }
   if (empty($errors))
   {
      return true;
   }
   return $errors;
}


$root = dirname(__FILE__);
$path = $root . "/avatar/";

echo "<pre>";
var_dump(copy_dir($path, $root ."/avatar_copia/"));
echo "</pre>";

?>


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.