Foros del Web » Programando para Internet » PHP »

problema para subir archivos

Estas en el tema de problema para subir archivos en el foro de PHP en Foros del Web. hola a todos, ¿como va?. mi problema es el siguiente. no puedo subir archivos al servidor por el motivo que no los guarda en el ...
  #1 (permalink)  
Antiguo 28/04/2004, 20:27
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
problema para subir archivos

hola a todos, ¿como va?.

mi problema es el siguiente. no puedo subir archivos al servidor por el motivo que no los guarda en el directorio temporal.

mi da el siguiente error cuando los quiero copiar definitivamente:
Warning: move_uploaded_file(): Unable to move 'C:\php\uploads\phpC9.tmp' to '' in c:\documents and settings\desktop\root\upload\ on line 17

el directorio temporal para los uploads es:
upload_tmp_dir C:\php\uploads
y el file_uploads esta en On

el codigo HTML es algo asi:
<form enctype="multipart/form-data" action="" method="post" >
<input type="hidden" name="MAX_FILE_SIZE" value="2000">
<input type="file" name="userfile">
<input type="submit" value="Send File">

el codigo PHP creo que no hace falta que lo copie porque con eso tendria que ser suficiente para guardar el archivo con un nombre temporal en C:\php\uploads pero no lo guarda ¿porque sera?

espero que me puedan ayudar. gracias!
  #2 (permalink)  
Antiguo 28/04/2004, 21:37
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
creo que lo guarda, pero no puede moverlo al directorio final (Unable to move). Verifica que realmente puedes escribir en ese directorio de destino
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 28/04/2004, 21:59
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
si tengo permisos para escribir. ademas me fijo cuando hago el submit si guardo algo en el directorio.
  #4 (permalink)  
Antiguo 28/04/2004, 22:13
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
¿que quieres decir con: "ademas me fijo cuando hago el submit si guardo algo en el directorio.
" ?
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #5 (permalink)  
Antiguo 28/04/2004, 23:44
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
cuando hago el submit de archivos, supuestamente PHP me los guarda con un nombre temporal en el directorio que yo le doy en las directivas. en este caso c:/php/uploads luego los destuye. pero nunca llega a haber nada.
  #6 (permalink)  
Antiguo 29/04/2004, 07:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pon el código PHP que hace el upload del archivo (con el formulario HTML sólo se vé bien poco acerca del posible error).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 29/04/2004, 10:24
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
lo hago de esta manera:
copy($_FILES['userfile']['tmp_name'],"/uploaded");

pero creo que la manera de comportarse de PHP es que cuando hago el submit del form guarda temporalmente los archivos para realizar alguna operacion con ellos, de lo contrario se destruyen.
pero tengo abierta la carpeta donde los guarda y en ningun momento hay nada.
  #8 (permalink)  
Antiguo 29/04/2004, 11:08
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
1. al hacer la copia estas indicandole solo el directorio en donde quieres copiar, no indicas el nombre del archivo de destino, por tanto lo que trata de hacer es convertir el directorio en un archivo que contenga lo que tiene el temporal. Por eso te da error.

copy($_FILES['userfile']['tmp_name'],"/uploaded/".$_FILES['userfile']['name']);

con esto situarás el archivo en el directorio elegido y con el mismo nombre que tenia en el cliente.

2. usa move_uploaded_file en lugar de copy.

Última edición por claudiovega; 29/04/2004 a las 11:09
  #9 (permalink)  
Antiguo 29/04/2004, 11:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrían leer este mensaje...
http://www.forosdelweb.com/showthrea...hreadid=195196


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 29/04/2004, 12:12
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
esta muy bien lo que decis claudiovega. olvide darle el nombre del archivo destino.

ahora me tira un warning:

Warning: move_uploaded_file(\uploaded\NOTAS2.txt): failed to open stream: No such file or directory in c:\documents and settings\dmn\desktop\root\upload\index.php on line 9

Warning: move_uploaded_file(): Unable to move 'C:\php\uploads\php18.tmp' to '\uploaded\NOTAS2.txt' in c:\documents and settings\dmn\desktop\root\upload\index.php on line 9
  #11 (permalink)  
Antiguo 29/04/2004, 12:17
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
hola cluster.

ya lo habia leido el mensaje que citas. pero como que quedo inconluso ¿no?.

saludos.
  #12 (permalink)  
Antiguo 29/04/2004, 14:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No, .. no quedó inconcluso .. si lo lees todo ..

En uno de los mensajes se hace referencia a un problema de permisos (como el tuyo) y .. unos mensajes mas abajo se recomienda que mires si los directorios implicados tienen permisos de escritura (donde mueves y donde lo lees)..

En fin .. es que veo que este mensaje va por el mismo camino .. por eso insisto que se lea y que digas que has probado.

En el mensaje que hago referencia se hace mención al sistema operativo que usa tu servidor (por qué de ahí viene por ejemplo si necesitas o no poner permisos al directorio que creastes y donde mueves tus archivos ..)

También se habla (creo?) sobre la directiva upload_tmp_dir .. que debe estar creado y a su vez con sus permisos de escritura adecuada .. etc .. etc (el etc se habla constantemente en ese mensaje).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 29/04/2004 a las 14:57
  #13 (permalink)  
Antiguo 29/04/2004, 17:18
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
aparentemente no quedo inconcluso. pero como no dijo si dio con el problema el user que lo planteo.

como les decias no tengo problemas con los permisos del directorio ya los revise.

pero si te fijas el warning primero que me tira es como si quiere mover el archivo que aun no se creo.
y tendria que mover el archivo temporal.

move_uploaded_file($_FILES['userfile']['tmp_name'][1],"\\uploaded\\".$_FILES['userfile']['name'][1]);

la verdad que ya no se que puede ser. las directivas estan bien.
file_uploads en ON
upload_tmp_dir= C:\php\uploads (creo haberle revisado bien los permisos al directorio)
uso win 2000 prof.
  #14 (permalink)  
Antiguo 30/04/2004, 07:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Supongo que usas una estrutura de directorios:

upload/
upload.php

SI es así .. si tu indicas /upload/ el / primero indica el raiz de tu servidor .. no "donde esté" que sería ./ .. En sistemas *NIX por ejemplo eso implica el "directorio raiz" del servidor entero . no de tu servidor virtual que caé tu DOCUMENT_ROOT en alguna parte de ese servidor .. así que .. si quieres usa rutas relativas pero estilo:


Código PHP:
move_uploaded_file($_FILES['userfile']['tmp_name'],"uploaded/".$_FILES['userfile']['name']); 
Pero lo mejor es para el directorio destino:

Código PHP:
$_SERVER['DOCUMENT_ROOT']."uploaded/".$_FILES['userfile']['name'
Y .. asegurate bien de que tanto ese directorio .. como el de tu upload_tmp_dir . estén creados y con permisos de ejecución para todo usuario.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 30/04/2004 a las 07:36
  #15 (permalink)  
Antiguo 30/04/2004, 13:23
 
Fecha de Ingreso: mayo-2003
Ubicación: a
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
muchas gracias por tu respuesta.
voy a revisar todo lo que dijiste si lo tuve en cuenta.
luego te cuento.

saludos.
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 10:58.