Foros del Web » Programando para Internet » PHP »

funcion copy php, que estoy haciendo mal?

Estas en el tema de funcion copy php, que estoy haciendo mal? en el foro de PHP en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original copy ( "C: \xa mpp\htdocs\p5 \R egistroUsuarios \n ofoto \N ofoto.jpg" , "C: \xa mpp\htdocs\p5 \R egistroUsuarios\imagenes\avatares \n uevo.jpg" ...
  #1 (permalink)  
Antiguo 02/10/2012, 19:18
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
funcion copy php, que estoy haciendo mal?

Código PHP:
Ver original
  1. copy("C:\xampp\htdocs\p5\RegistroUsuarios\nofoto\Nofoto.jpg","C:\xampp\htdocs\p5\RegistroUsuarios\imagenes\avatares\nuevo.jpg");


ese no me funciona pero si me funciona con el input file


donde hago esto:

Código PHP:
Ver original
  1. $avatar= "imagenes/avatares/".$idimagen."/".$_FILES['archivo']['name'];
  2.  
  3.     copy($_FILES['archivo']['tmp_name'],str_replace(" ","_",$avatar));

y si funciona.


las carpetas ya estan creadas..


me baso en este ejemplo


Código PHP:
Ver original
  1. copy(file,to_file)

Parameter Description
file Required. Specifies the file to copy
to_file Required. Specifies the file to copy to

Tips and Notes

Note: If the destination file already exists, it will be overwritten.

Example

Código PHP:
Ver original
  1. <?php
  2. echo copy("source.txt","target.txt");
  3. ?>

solo que en el ejemplo de arriba ocupo meter directamente una imagen en un directorio ya creado previamente para que el usuario que dijo "No incluir foto" tenga una por default.. si ya se, me diran que guarde solo la ruta de la imagen por default... el detalle es que necesariamente esa imagen por default quiero que aparezca en su galeria de fotos, no solo en la de perfil...pero no funciona, no la guarda...

y si tengo permisos de escritura pues con el input file si funciona

de antemano gracias

Última edición por minombreesmm; 02/10/2012 a las 19:25
  #2 (permalink)  
Antiguo 02/10/2012, 19:31
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: funcion copy php, que estoy haciendo mal?

Cita:
Iniciado por minombreesmm Ver Mensaje
Código PHP:
Ver original
  1. copy("C:\xampp\htdocs\p5\RegistroUsuarios\nofoto\Nofoto.jpg","C:\xampp\htdocs\p5\RegistroUsuarios\imagenes\avatares\nuevo.jpg");
intenta en vez de C:.... poner ..\..\ etc... dependiendo de donde estés situada, en que directorio ..\ es como ir para atras.
  #3 (permalink)  
Antiguo 02/10/2012, 19:34
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: funcion copy php, que estoy haciendo mal?

Código PHP:
copy("C:\xampp\htdocs\p5\RegistroUsuarios\nofoto\Nofoto.jpg","C:\xampp\htdocs\p5\RegistroUsuarios\imagenes\avatares\nuevo.jpg"); 
No entiendo porque lo haces así. Si estas en un servidor web (asi sea local es un servidor) Le estas dando una ruta de windows no del servidor. Dando por sentado que el script lo ejecutas desde la carpeta Registro usuarios es mas facil definir la ruta como.

Código PHP:
$path1="nofoto/Nofoto.jpg";
$path2="imagenes/avatares/nuevo.jpg";
copy($path1,$path2); 
Lo he echo asi de afan, pero asi creo que deberia servir, revisalo bien.
Igual yo previamente le haria la comprobacion de si existe el archivo para realizar la copia.

Por si quieres hacerlo con ruta absoluta y no relativa, busca información en internet que existe de sobra.
__________________
Blog de humor http://elcuasatar.net63.net/
  #4 (permalink)  
Antiguo 02/10/2012, 20:02
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: funcion copy php, que estoy haciendo mal?

Cita:
Iniciado por cuasatar Ver Mensaje
Código PHP:
copy("C:\xampp\htdocs\p5\RegistroUsuarios\nofoto\Nofoto.jpg","C:\xampp\htdocs\p5\RegistroUsuarios\imagenes\avatares\nuevo.jpg"); 
No entiendo porque lo haces así. Si estas en un servidor web (asi sea local es un servidor) Le estas dando una ruta de windows no del servidor. Dando por sentado que el script lo ejecutas desde la carpeta Registro usuarios es mas facil definir la ruta como.

Código PHP:
$path1="nofoto/Nofoto.jpg";
$path2="imagenes/avatares/nuevo.jpg";
copy($path1,$path2); 
Lo he echo asi de afan, pero asi creo que deberia servir, revisalo bien.
Igual yo previamente le haria la comprobacion de si existe el archivo para realizar la copia.

Por si quieres hacerlo con ruta absoluta y no relativa, busca información en internet que existe de sobra.
no no espera si lo estoy haciendo asi...
Código PHP:
Ver original
  1. $avatar= "imagenes/avatares/".$idimagen."/".$_FILES['archivo']['name'];
  2.  
  3.     copy($_FILES['archivo']['tmp_name'],str_replace(" ","_",$avatar));

tambien la de arriba puse la ruta relativa.....
asi como este codigo...
pero tampoco funciono, por eso probe poner la ruta directamente...

y ahorita acabo de probar asi.. y nada..
Código PHP:
Ver original
  1. copy("RegistroUsuarios/nofoto/Nofoto.jpg","RegistroUsuarios/imagenes/avatares/nuevo.jpg"); //guardo la imagen en el subdirectorio directorio, a fuerzas en el mismo
  2.     $rutaavatar="RegistroUsuarios/imagenes/avatares/nuevo.jpg";

los archivos si existen alli. pues en el caso else... uso las mismas rutas.. y si guarda la imagen del input file

miren este es el else que si funciona..
idimagen es el incremento.. puede ser 5,6...10

Código PHP:
Ver original
  1. $idimagen="896ft".$idimagen."16foto";
  2.  
  3. $avatar= "imagenes/avatares/".$idimagen."/".$_FILES['archivo']['name'];//lo meto en la carpeta avatar y le pongo el nombre del usuario a la carpeta
  4.     copy($_FILES['archivo']['tmp_name'],str_replace(" ","_",$avatar));
  #5 (permalink)  
Antiguo 02/10/2012, 20:17
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: funcion copy php, que estoy haciendo mal?

Cita:
Iniciado por cuasatar Ver Mensaje
Código PHP:
copy("C:\xampp\htdocs\p5\RegistroUsuarios\nofoto\Nofoto.jpg","C:\xampp\htdocs\p5\RegistroUsuarios\imagenes\avatares\nuevo.jpg"); 
No entiendo porque lo haces así. Si estas en un servidor web (asi sea local es un servidor) Le estas dando una ruta de windows no del servidor. Dando por sentado que el script lo ejecutas desde la carpeta Registro usuarios es mas facil definir la ruta como.

Código PHP:
$path1="nofoto/Nofoto.jpg";
$path2="imagenes/avatares/nuevo.jpg";
copy($path1,$path2); 
Lo he echo asi de afan, pero asi creo que deberia servir, revisalo bien.
Igual yo previamente le haria la comprobacion de si existe el archivo para realizar la copia.

Por si quieres hacerlo con ruta absoluta y no relativa, busca información en internet que existe de sobra.

no pongo el "si existe el archivo"

por que a fuerzas el usuario tiene que guardar ese archivo que debe estar en esa ruta que yo tengo alli especificamente solo para cuando el usuario no elige avatar..

osea una de dos, el usuario elige foto y se guarda su ruta y se copia el archivo en la ruta creada O el usuario no elige foto y se crea la ruta y se guarda una imagen por default(esta imagen es la que no puedo guardar)
  #6 (permalink)  
Antiguo 03/10/2012, 09:32
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: funcion copy php, que estoy haciendo mal?

intente esto

Código PHP:
Ver original
  1. $rutaavatar="RegistroUsuarios/nofoto/Nofoto.jpg";
  2.  
  3. copy($rutaavatar,"RegistroUsuarios/nofoto/Nofoto2.jpg");

y nada, y no entiendo por que..
las rutas si existen, y alli tengo la imagen.

tambien intente poniendo la ruta completa
Código PHP:
Ver original
  1. $rutaavatar="http://localhost/p5/RegistroUsuarios/nofoto/Nofoto.jpg";
  2.  
  3. copy($rutaavatar,"http://localhost/p5/RegistroUsuarios/nofoto/Nofoto2.jpg");

y bueno puse un exit despues copiar para parar los procesos que seguian, y me mando esto

Warning: copy(http://localhost/p5/RegistroUsuarios/nofoto/Nofoto2.jpg) [function.copy]: failed to open stream: HTTP wrapper does not support writeable connections in C:\xampp\htdocs\p5\RegistroUsuarios\insertar.php on line 174
entro


y cuando la pongo sin el localhost.. osea la ruta relativa..
me manda esto
Warning: copy(RegistroUsuarios/nofoto/Nofoto.jpg) [function.copy]: failed to open stream: No such file or directory in C:\xampp\htdocs\p5\RegistroUsuarios\insertar.php on line 173
entro

Última edición por minombreesmm; 03/10/2012 a las 09:42
  #7 (permalink)  
Antiguo 03/10/2012, 09:43
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: funcion copy php, que estoy haciendo mal?

Cita:
$rutaavatar="RegistroUsuarios/nofoto/Nofoto.jpg";

copy($rutaavatar,"RegistroUsuarios/nofoto/Nofoto2.jpg");
Si algo tan sencillo como esto no te funciona yo revisaria dos cosas:

1. Verifica que el archivo nofoto si existe (Tu me diras que si existe) pero hazlo con código.

Código PHP:
$rutaavatar="RegistroUsuarios/nofoto/Nofoto.jpg";
echo 
is_file($rutaavatar); 
Ya se que suena básica primaria, pero es la primera verificación que se debe hacer, si esto bota falso pues jamas podras copiar un archivo que no existe.

2. Si lo anterior da positivo y no deja copiar el archivo el problema puede ser de permisos. Yo probaria algo como:

Código PHP:
chmod($rutaavatar0755); 
y por supuesto luego intentaria copiar el archivo.

3. Si ninguna de las dos opciones funciona, pues no se me ocurre nada mas. Espero y con eso lo puedas solucionar.
__________________
Blog de humor http://elcuasatar.net63.net/
  #8 (permalink)  
Antiguo 03/10/2012, 09:47
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: funcion copy php, que estoy haciendo mal?

Cita:
Iniciado por cuasatar Ver Mensaje
Si algo tan sencillo como esto no te funciona yo revisaria dos cosas:

1. Verifica que el archivo nofoto si existe (Tu me diras que si existe) pero hazlo con código.

Código PHP:
$rutaavatar="RegistroUsuarios/nofoto/Nofoto.jpg";
echo 
is_file($rutaavatar); 
Ya se que suena básica primaria, pero es la primera verificación que se debe hacer, si esto bota falso pues jamas podras copiar un archivo que no existe.

2. Si lo anterior da positivo y no deja copiar el archivo el problema puede ser de permisos. Yo probaria algo como:

Código PHP:
chmod($rutaavatar0755); 
y por supuesto luego intentaria copiar el archivo.

3. Si ninguna de las dos opciones funciona, pues no se me ocurre nada mas. Espero y con eso lo puedas solucionar.

Gracias muchas gracias.. sabes que despistado fuii..
cai en un error de esos que tenia al principio cuando empece hace 2 meses
y es que yo estaba en la carpéta registro usuarios por lo tanto no era necesario poner registro usuarios jejes.
la cosa quedo asi

Código PHP:
Ver original
  1. $rutaavatar="nofoto/Nofoto.jpg";
  2. copy($rutaavatar,"nofoto/Nofoto2.jpg");
  3. echo "entro";

Ahora ya que probé esto, haré lo que quería hacer.. veamos si me da problemas ahora :D XD
sabes no me di cuenta desde el principio o no entiendo quie paso que no capte que tu me dijiste eso oO
bueno muchas gracias :D
Gracias a todos :D

Última edición por minombreesmm; 03/10/2012 a las 10:17

Etiquetas: copy, funcion, haciendo, registro, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:03.