Foros del Web » Programando para Internet » PHP »

Problema al copiar Archivos

Estas en el tema de Problema al copiar Archivos en el foro de PHP en Foros del Web. Saludos, tengo un problema con php, quiero copiar un archivo a una carpeta, la carpeta en cuestión se llama Cargas, sin embargo no me copia ...
  #1 (permalink)  
Antiguo 23/02/2012, 12:54
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Problema al copiar Archivos

Saludos, tengo un problema con php, quiero copiar un archivo a una carpeta, la carpeta en cuestión se llama Cargas, sin embargo no me copia nada y tampoco me imprime el echo, no se si algo estoy haciendo mal pues he consultado varias páginas de internet y no hallo el error que tengo, el código en cuestión sería este:

Cita:
<?
$archivo=$_REQUEST['subir'];
copy($archivo,"Cargas\\".$archivo_name);
echo $archivo_name;
?>

<form method=post enctype="multipart/form-data">
<input type=file name=subir id=subir>
<input type=submit name=enviar id=enviar value=enviar>
</form>
Espero puedan ayudarme, gracias.
  #2 (permalink)  
Antiguo 23/02/2012, 12:55
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Problema al copiar Archivos

También ya intente con el método move_uploaded_file y tampoco pasa algo.
  #3 (permalink)  
Antiguo 23/02/2012, 14:28
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al copiar Archivos

Hola TemplarKnight, primero que todo en vez de $_REQUEST debes usar $_FILES y lo correcto es hacerlo con la función move_uploaded_file no con copy.

Esta es la sintaxis:

Código PHP:
Ver original
  1. move_uploaded_file($_FILES["subir"]["tmp_name"], "Cargas/" . $_FILES["subir"]["name"]);

También es importante que realices las validaciones de los archivos subidos entre otras cosas.

Mira los ejemplos:

http://www.w3schools.com/php/php_file_upload.asp

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 24/02/2012, 01:38
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Problema al copiar Archivos

Este es el código modificado y aún no me corre, no encuentro realmente donde podría estar el error, estoy usando Appserv y aún así no corre :/

Cita:
<?
move_uploaded_file($_FILES["subir"]["tmp_name"],"Cargas/".$_FILES["subir"]["name"]);
echo "Cargas/".$_FILES['subir']['name'];

?>
Archivo:
<form method=post action=Envio.php enctype=multipart/form-data">
<input type=file name=subir id=subir>
<input type=submit name=enviar id=enviar value=enviar>
</form>
  #5 (permalink)  
Antiguo 24/02/2012, 12:43
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al copiar Archivos

Agrega las comillas a los atributos HTML:

Código HTML:
Ver original
  1. <form method="post" action="Envio.php" enctype="multipart/form-data">
  2. <input type="file" name="subir" id="subir">
  3. <input type="submit" name="enviar" id="enviar" value="enviar">
  4. </form>

La carpeta Cargas debe existir.

Algún tipo de error?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 24/02/2012, 13:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema al copiar Archivos

Aparte de que debes de comprobar primero sí existe y es una petición POST antes de intentar copiar el archivo, o de lo contrario te va a dar error.
  #7 (permalink)  
Antiguo 24/02/2012, 23:26
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Problema al copiar Archivos

andresdzphp, que yo sepa las comillas solo son obligatorias cuando se está en xhtml aunque no se si en php esto altere o no, pero desgraciadamente, no me marca error y peor aún, intenté hacer una comprobación con las siguientes sentencias:

Cita:
<?
echo $_FILES['subir']['tmp_name']."<br />";
echo "Cargas/".$_FILES['subir']['name'];
?>
Y a que no adivinan que me imprime?????

Cita:
"; echo "Cargas/".$_FILES['subir']['name'];
Eso es lo que me imprime...realmente no se que pasa con mi appserv .____.
  #8 (permalink)  
Antiguo 25/02/2012, 00:24
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 2 meses
Puntos: 15
Respuesta: Problema al copiar Archivos

Cita:
Iniciado por TemplarKnight Ver Mensaje
andresdzphp, que yo sepa las comillas solo son obligatorias cuando se está en xhtml
No es que las comillas sólo sean obligatorias en XHTML, sino que escribirlas hace que tu código sea más limpio y fácil de leer, además si no usas comillas los valores de los atributos no podrán contener espacios en blanco.

Volviendo a tu problema.

Puede que te imprima esto porque estás usando short tags, y en tu configuración no están activados, por eso es que no ejecuta tu código php.

Código PHP:
Ver original
  1. "; echo "Cargas/".$_FILES['subir']['name'];

Podrías solucionarlo reemplazando <? por <?php

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['enviar'])){
  3. move_uploaded_file($_FILES["subir"]["tmp_name"],"Cargas/".$_FILES["subir"]["name"]);
  4. echo "Cargas/".$_FILES['subir']['name'];
  5. }
  6. ?>
  7. Archivo:
  8.     <form method="post" action="Envio.php" enctype="multipart/form-data">
  9.     <input type="file" name="subir" id="subir">
  10.     <input type="submit" name="enviar" id="enviar" value="enviar">
  11.     </form>
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »
  #9 (permalink)  
Antiguo 26/02/2012, 15:27
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Problema al copiar Archivos

Creo que el problema principal de todo esto, es que no me está entrando bien al php no me está validando nada, zarkiel, cuando pruebo el código que con tanta amabilidad de propones, no me imprime nada la pantalla :( es decir, el navegador se queda en blanco...la verdad no entiendo el por qué de esto...tal vez lo mejor sea que use xampp o wampp
  #10 (permalink)  
Antiguo 26/02/2012, 17:28
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Problema al copiar Archivos

Hasta ahora había intentado subir puros .txt ahora intenté subir un .pdf y un .pptx y esto es lo que me arroja
Cita:
Warning: move_uploaded_file(Cargas/TL89_reporvirus.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\AppServ\www\PrograWeb\Envio\Envio.php on line 5

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Windows\Temp\phpD405.tmp' to 'Cargas/TL89_reporvirus.pdf' in C:\AppServ\www\PrograWeb\Envio\Envio.php on line 5
  #11 (permalink)  
Antiguo 26/02/2012, 20:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al copiar Archivos

La carpeta Cargas existe y está en el mismo nivel del archivo Envio.php? move_uploaded_file no crea carpetas. Appserv es capaz con eso, no hace falta más para un ejemplo tan básico.

PD: Las comillas si son obligatorias en XHTML para poder tener un documento válido y en muchos casos se producen errores si no las colocas.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #12 (permalink)  
Antiguo 26/02/2012, 23:37
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Problema al copiar Archivos

Ya pude, tenías toda la razón andresdzphp, estaba un directorio arriba la carpeta y por eso no funcionaba muchas gracias por ayudarme y ser tan paciente :D MIL GRACIAS. Gracias a todos :D
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 14:23.