Foros del Web » Programando para Internet » PHP »

Problemas al subir Archivos

Estas en el tema de Problemas al subir Archivos en el foro de PHP en Foros del Web. Buenas amigos!!! Tengo un pequeño problema con un script de subida de archivos. Siempre me dice que no tengo permiso para escribir en la carpeta. ...
  #1 (permalink)  
Antiguo 09/08/2006, 04:40
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Mensaje Problemas al subir Archivos

Buenas amigos!!!

Tengo un pequeño problema con un script de subida de archivos.
Siempre me dice que no tengo permiso para escribir en la carpeta.

Y mi pregunta es como poder dar permisos a la carpeta.

Tengo el servidor montado en un ordenador con Windows 98, el servidor es Apache.
  #2 (permalink)  
Antiguo 09/08/2006, 04:42
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Mensaje Se me olvidaba

Se me olvidaba poner el código del script, es muy sencillo y sin ninguna restricción

Código PHP:
if (is_uploaded_file($_FILES['nombre']['tmp_name'])) {
 if(
copy($_FILES['nombre']['tmp_name'],"C:\Web\archivos\Uploaded\\")){echo'Ok';}
 } 
  #3 (permalink)  
Antiguo 09/08/2006, 05:09
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 13 años, 7 meses
Puntos: 0
Cita:
Iniciado por Maltus Ver Mensaje
Se me olvidaba poner el código del script, es muy sencillo y sin ninguna restricción

Código PHP:
if (is_uploaded_file($_FILES['nombre']['tmp_name'])) {
 if(
copy($_FILES['nombre']['tmp_name'],"C:\Web\archivos\Uploaded\\")){echo'Ok';}
 } 
Fijate en
Código:
C:\Web\archivos\Uploaded\\
tienes dos \\

Salud2
  #4 (permalink)  
Antiguo 09/08/2006, 08:51
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Si se la quitas entonces no te termina el string
Código PHP:
"frase en string\" aqui tendria q venir codigo pero él cree que es string 
Sin embargo si pones lo q tengo
Código PHP:
"frase en string\\" aqui viene el codigo y lo identifica como tal 
Como muy bien interpreta la etiqueta PHP de este foro.
  #5 (permalink)  
Antiguo 09/08/2006, 09:29
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 12 años, 4 meses
Puntos: 0
Bueno... para subir archivos hay 2 formas...
La primera es comprobar sino se ha subido el archivo... y si no se subió, copiarlo a otro lado...
is_uploaded_file()
copy()

Pero hay una manera más practiva de subir un archivo y solo con una función...
Código PHP:
...
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
...
By PHP.net... 
Esa manera es más facil...
Recuerda que puedes cambiar $HTTP_POST_FILES por $_FILES.

Atte... DarkXNightmare ;D.
__________________
Cambiando mi Web... sean pacientes :P
  #6 (permalink)  
Antiguo 09/08/2006, 09:34
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 12 años, 4 meses
Puntos: 0
AAAAAaaaaaaaaa... Ahora si entiendo el problema... :P.
Es muy simple y lo puedes hacer de 2 maneras...
  1. Chequea la carpeta a la que vas a subir los archivos y dale los permisos correspondientes... chequeando que no sea solo Lectura...
  2. Puedes hacer un Script PHP y usa la función CHMOD()...
Código PHP:
...
chmod("ruta/del/archivo/o/carpeta/"0777);
... 
De esa manera le das todos los privilegios a la carpeta y podrás subir archivos ;D. Atte... DarkXNightmare ;D.
__________________
Cambiando mi Web... sean pacientes :P
  #7 (permalink)  
Antiguo 09/08/2006, 09:53
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Muchas gracias

Tengo una pregunta el permiso se lo tengo que dar a la carpeta a donde los quiero subir, al archivo que gestiona la subida o al archivo que voy a subir?
  #8 (permalink)  
Antiguo 09/08/2006, 10:03
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 12 años, 4 meses
Puntos: 0
Normalmente es solo a la carpeta... pero dale el permiso a los 2 para asegurarse.

Atte... DarkXNightmare ;D.
__________________
Cambiando mi Web... sean pacientes :P
  #9 (permalink)  
Antiguo 09/08/2006, 10:12
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Mira q soy plasta

Nada de nada, este es el error que me da

Código PHP:
Warning:  move_uploaded_file(C:WebarchivosUploaded): failed to open streamPermission denied in C:Webarchivosupload.php on line 43



Warning
:  move_uploaded_file(): Unable to move 'C:\Web\Temp\phpA320.TMP' to C:WebarchivosUploaded in C:Webarchivosupload.php on line 43 
Este es el código del script de los permisos

Código PHP:
if(chmod("C:\Web\archivos\Uploaded",0777)){echo 'cambiado el permiso con exito<BR>';}
if(
chmod("C:\Web\archivos\upload.php",0777)){echo 'cambiado el permiso con exito<BR>';} 
Y el codigo de subida esta hecho con la función que me has dicho



No encuentro que le pasa

Última edición por Maltus; 09/08/2006 a las 10:22 Razón: Se evaporo el momento de lucidez
  #10 (permalink)  
Antiguo 09/08/2006, 10:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
OJO, en windows no se aplica chmod() .. eso es para S.O. Linux y compañia.

Si tienes problemas para ese directorio en concreto de permisos ... revisalos en tu sistema de archivos .. propiedades de ese directorio y fijate que permisos tiene (siempre que uses Windows XP pro .. o algún Server 2000, etc).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 09/08/2006, 10:22
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 12 años, 4 meses
Puntos: 0
Eeeeeeeeesssspeeeerrrraaaaaa un poco... :P.

Mira el Error...
Código PHP:
Warning:  move_uploaded_file(C:WebarchivosUploaded): failed to open stream 
Tienes que agregar esto a la ruta...

Código PHP:
if(chmod("C:\\Web\\archivos\\Uploaded",0777)){echo 'cambiado el permiso con exito<BR>';}
if(
chmod("C:\\Web\\archivos\\upload.php",0777)){echo 'cambiado el permiso con exito<BR>';} 
La Barra \ es un caracter de salida el cual sirve para cosas como, por ejemplo, si quieres escribir $ en pantalla... Lo tienes que hacer \$ de esa forma para que no se confunda con una variable. Lo mismo con si quieres escribir \ en pantalla... primero... \ y luego \... en resumen...

Si quieres que \ aparesca en pantalla... tienes que escribirlo como \\ y listo ;D.

Espero te sirva y me cuentas como te fué ;D.

Atte... DarkXNightmare ;D.
__________________
Cambiando mi Web... sean pacientes :P
  #12 (permalink)  
Antiguo 09/08/2006, 10:33
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Muchas Gracias a Todos por El Interes

Primero dar las gracias a DarkXNightmare y Cluster

He puesto lo de las barras antes, xq me he dado cuenta yo tb pero nada de nada, no sé lo traga.

Por otro lado lo que ha dicho Cluster parece interesante, pero como podria hacerlo en Windows 98, xq no tiene esas movidas.

A lo mejor existe un programa, yo he buscado y no he encontrado nada
  #13 (permalink)  
Antiguo 09/08/2006, 10:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Por otro lado lo que ha dicho Cluster parece interesante, pero como podria hacerlo en Windows 98, xq no tiene esas movidas.
En windows98 no existe el concepto de permisos de escritura (por usuario) .. todo queda en "lectura" y "escritura" ... (en principio).

No sé que código exactamente estás usando .. pero si te guiastes por lo que te comentaron:

move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
...

A eso "textualmente" le falta indicar el NOMBRE del archivo a crear en destino . .ya sea el mismo que tenía u otro .. esto no es un "copy" de D.O.S. donde no es necesario que indiques el nombre del archivo a copiar. Se requiere un nombre concreto:

Código PHP:
move_uploaded_file($_FILES['userfile']['tmp_name'], "./uploaded/".$_FILES['userfile']['name']); 
No sé realmente donde es la ruta donde vas a dejar tu archivo ni la estructura de directorios de tu sitio .. pero si "uploaded" como directorio cae bajo el directorio donde tienes tu script.php de proceso del Upload, podría quedar todo como te menciono: ./upload/nombreararhivo.tal o mejor .. tomando el nombre real que tenía el archivo con $_FILES['campo_file_formulario']['name'] ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 09/08/2006, 11:04
 
Fecha de Ingreso: agosto-2006
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
De acuerdo We Are The Champions!!!!!

Muchisisisisisimas gracias, llevaba ya una semana debanandome los sesos y en menos que canta un gallo me lo habeis resuelto, muchas gracias.

Estoy en deuda.
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 20:49.