| |||
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: |
| |||
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. |
| |||
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: |
| |||
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, |
| |||
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 |
| |||
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. |
| |||
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: |
| |||
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. |