Foros del Web » Programando para Internet » PHP »

Cual es la mejor funcion de php para subir archivos?

Estas en el tema de Cual es la mejor funcion de php para subir archivos? en el foro de PHP en Foros del Web. Hola amigos. Es que tengo problemas al subir un archivo al servidor en el que esta alojada mi pagina, el servidor es de Brinkster. Y ...
  #1 (permalink)  
Antiguo 26/08/2009, 10:06
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años, 6 meses
Puntos: 0
Cual es la mejor funcion de php para subir archivos?

Hola amigos.

Es que tengo problemas al subir un archivo al servidor en el que esta alojada mi pagina, el servidor es de Brinkster. Y el problema es que al subir el archivo con la funcion move_upload_file() el archivo sube perfecto, pero sin algunos permisos para descargar con cualquier cliente ftp.

Entonces queria saber que me aconsejan, cual funcion es mejor utilizar? o utilizo las funciones ftp de php?

Gracias totales!
  #2 (permalink)  
Antiguo 26/08/2009, 10:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Cual es la mejor funcion de php para subir archivos?

¿Pero quien tu quieres que suba el archivo. El usuario o tu solamente quieres subir los archivos?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 26/08/2009, 10:22
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Cual es la mejor funcion de php para subir archivos?

gracias abimaelrc por responder.

Cualquier usuario puede subir el archivo!
  #4 (permalink)  
Antiguo 26/08/2009, 10:24
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 16 años, 2 meses
Puntos: 41
Respuesta: Cual es la mejor funcion de php para subir archivos?

Hombre... si estás subiendo un archivo de tu pc por un formulario, lo mejor es utilizar move_uploaded_file, vamos lo mejor no, es lo correcto, si tienes problemas con los permisos puedes cambiarlos con la funcion chmod de PHP.

Código:
chmod("nombre carpeta",  0666);
un saludo.
  #5 (permalink)  
Antiguo 26/08/2009, 10:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Cual es la mejor funcion de php para subir archivos?

Lo mejor es usar move_upload_file, solo tienes que verificar que tipo de archivos tu quieres que pasen a traves de $_FILE["nombreCampoDeFile"]["type"].
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 26/08/2009, 10:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Cual es la mejor funcion de php para subir archivos?

OK, gracias codig0.

Subo el archivo con move_upload_file(archivo_tmp, ruta); pero sube sin permisos para descargar a traves de cualquier cliente ftp. De hecho luego del move_upload_file() le probe chmod(archivo,0777); pero nada.
  #7 (permalink)  
Antiguo 26/08/2009, 10:30
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Cual es la mejor funcion de php para subir archivos?

Gracias de nuevo abimaelrc.

Me perdi chinaso, me puedes explicar mejor porfa, toy un poco lento de tanto pensar como hace eso!
  #8 (permalink)  
Antiguo 26/08/2009, 10:31
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 16 años, 2 meses
Puntos: 41
Respuesta: Cual es la mejor funcion de php para subir archivos?

Cuidado como compruebas la extensión de el archivo que suben, si lo haces mal, podrían subir cualquier archivo con una extensión que tu permitas, por ejemplo si permites solo .jpg y te suben un .php como .jpg.

Para solucionar esto deberías utilizar la función mime_content_type, que si cambian la extensión de el archivo te devuelve la que tenia antes.
  #9 (permalink)  
Antiguo 26/08/2009, 10:33
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Cual es la mejor funcion de php para subir archivos?

Si codig0 ya le di permisos directamente al directorio para que se puedan subir archivos! pero tampoco quiere heredar esos permisos a los archivos que se suban a ese directorio.

En cuanto a las extenciones de los archivos, no me preocupo por que solo van a subir archivos .txt
  #10 (permalink)  
Antiguo 26/08/2009, 10:35
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 16 años, 2 meses
Puntos: 41
Respuesta: Cual es la mejor funcion de php para subir archivos?

es que uno de los problemas que tiene chmod es ese, que si no tienes permisos para utilizarlo, no puedes hacerlo...
  #11 (permalink)  
Antiguo 26/08/2009, 10:49
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Cual es la mejor funcion de php para subir archivos?

pero para crear directorios con todos los permisos si he podido, con mkdir(dir, 0777)

Sera que si utilizo las funciones ftp de php esos archivos .txt subiran con permisos?
  #12 (permalink)  
Antiguo 26/08/2009, 13:35
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Cual es la mejor funcion de php para subir archivos?

Bueno muchachos, lo he solucionado. Con funciones ftp!!!

Aqui mi aporte: (Aclaro que este codigo me lo baje de la web, y agradezco a su creador)

//Las variables $archivo, $archivo_name, $archivo_size, $archivotype... son las mismas $_FILE['archivo']['tmp'], $_FILE['archivo']['name']...
function subirArchivo($archivo,$archivo_name,$archivo_size, $archivo_type,$lim_tamano){

$cid = ftp_connect("servidor ftp");
$resultado = ftp_login($cid, "usuario","contraseña");
if((!$cid) || (!$resultado)) {
echo "Fallo en la conexión"; die;
}
/*else{
echo "Conectado.";
}*/

ftp_pasv ($cid, true);
@ftp_chdir($cid, Directorio del servidor donde se ubicaran los archivos);

$local = $archivo_name;
$remoto = $archivo;
$tama = $archivo_size;
$ruta = Directorio.$local;

if(is_uploaded_file($remoto)){
copy($remoto, $ruta);
}
else{
echo "No se pudo subir el archivo ".$local;
}
ftp_close($cid);
}
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 22:29.