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. Hola amigos, que tal , me encuentro en un problema, estoy agregando un modulo para mi pagina, con la finalidad de que los usuarios puedan ...
  #1 (permalink)  
Antiguo 01/06/2004, 08:22
 
Fecha de Ingreso: abril-2004
Ubicación: lima
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
problemas al subir archivos

Hola amigos, que tal , me encuentro en un problema, estoy agregando un modulo para mi pagina, con la finalidad de que los usuarios puedan subir archivo, para esto hice un script en php usando ftp tanto para subirlo como para bajarlos, use ftp , porque si uso http, los usuarios no podria subir archivos que pesan mas de 2MB. Entonces el problema es que cuando subo el archivo, y lo descargo, parece que en algun momento se pierden bytes en el camino, por lo cual el archivo no se puede abrir, si alguien me puede asesorar, o de algun paso que estoy olvidando, les agradeceria mucho.
__________________
:pirata: habla barrio :pirata:
  #2 (permalink)  
Antiguo 01/06/2004, 08:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

La culpa es del tercer parametro de la segunda funcion de la octava linea de la tercera libreria

Sin ver lo que realmente estas haciendo, pueden ser mil cosas. Ya que nombras FTP, ¿usas el modo texto para ficheros de texto y el modo binario para los binarios? Porque subir un archivo binario en modo texto puede dar sintomas como el que describes.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 01/06/2004, 09:01
 
Fecha de Ingreso: abril-2004
Ubicación: lima
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
Tienes razón

Que tal , tienes razóm, dije el problema de manera general , pero aca te viene el codigo que uso:

// mediante estas lineas recibo los atributos del archivo que quiero subir.

$ruta_archivo_name = $HTTP_POST_FILES['ruta_archivo']['name'];
$ruta_archivo_type = $HTTP_POST_FILES['ruta_archivo']['type'];
$ruta_archivo_size = $HTTP_POST_FILES['ruta_archivo']['size'];
$ruta_archivo= $HTTP_POST_FILES['ruta_archivo']['tmp_name'];

// aqui abro la conexion con mi servidor.
$ftp="[email protected]"
$clave="myclave";
$stream = ftp_connect("ftp.myhost.com");
$login = ftp_login($stream,$ftp,$clave);
$file = ftp_put ($stream, $ruta_archivo_name, $ruta_archivo, FTP_ASCII);
$quit = ftp_quit($stream);

trato de que todos los usuarios suban los archivos en *.zip, pero si me puedes dar una direccion para conocer mas sobre como subir cada tipo de archivo te la agradeceria.
__________________
:pirata: habla barrio :pirata:
  #4 (permalink)  
Antiguo 01/06/2004, 09:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El archivo igualmente sube por HTTP y lo controla PHP (con sus restricciones de su php.ini: max_upload_file y afines) ..

El hecho de que finalmente "muevas" ese archivo por "FTP" a su destino definitivo no es lo que manda en ese aspecto el tamaño máximo del archivo que peudes subir ademas de un gasto de tiempo extra en negociar ese "usuario/password" (autentificación) sobre todo si donde dejas tus archivos es el mismo servidor que usas PHP para subirlos.

Un saludo,
  #5 (permalink)  
Antiguo 01/06/2004, 09:18
 
Fecha de Ingreso: abril-2004
Ubicación: lima
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
respuesta

Cluster , entonces estoy comentiendo un error en mi codigo, lo correcto seria que los atributos del archivo pasen directamente a los parametros del ftp para que el proceso de upload de los archivos lo maneje el ftp directamente, y asi poder subir archivos superiores a los 2MB, la idea del usuario y contraseña es para limitar a algunos usuarios para que no eliminen los archivos que otros suben.
__________________
:pirata: habla barrio :pirata:

Última edición por rickykaiser; 01/06/2004 a las 09:20
  #6 (permalink)  
Antiguo 01/06/2004, 09:25
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Veamos, el codigo de FTP de PHP es para que tu servidor actue como un cliente de FTP. Y para que subir el fichero de la maquina del cliente sea fia FTP, esa maquina del cliente deberia ser un servidor FTP. Y seria a esa maquina del cliente a donde deberia conectarse tu codigo PHP para hacer un GET del fichero de la maquina del cliente.

Si usas un campo file en un formulario, ya estas usando upload HTTP.

Por supuesto, supongo que ese codigo PHP esta en myhost.com.

Saludos.

PD: Ese ultimo parametro de ftp_put(), el FTP_ASCII, le esta diciendo que el fichero es de texto. Mira en www.php.net/ftp_put cual es el valor para indicar modo binario.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 01/06/2004, 09:41
 
Fecha de Ingreso: abril-2004
Ubicación: lima
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
Confundido

Hola, ya me enrede con esto, entonces me dices que en hacer la conexion al servidor lo haga al cliente, pero eso se puede hacer.
__________________
:pirata: habla barrio :pirata:
  #8 (permalink)  
Antiguo 01/06/2004, 09:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Solo si el equipo del cliente tiene instalado un servidor FTP, conoces su IP, y su usuario y password. Lo que no es lo normal en esto de internet.

Por eso se usa el upload via HTTP. Si no te llega con el limite de tu hosting, habla con ellos para que te lo suban.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 01/06/2004, 10:00
 
Fecha de Ingreso: abril-2004
Ubicación: lima
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
En que busca encuentra

En verdad no creo que mi proveedor me facilite ese servicio, pero ya se me ocurrira algo. gracias
__________________
:pirata: habla barrio :pirata:
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 15:10.