

| ||||
aqui te va un codigo que solo permite subir un tipo de archivo, pero es modificable, suerte Código PHP: y si lo instalas en el servidor recuerda darle permiso 777 al directorio. |
| |||
Lo que tienes en las FAQ's que tanto te remiten es un resumen de lo que dice el manual oficial de PHP sobre el tema de "file upload" ... http://us.php.net/manual/en/features.file-upload.php Si lo lees .. veras que antes de probar ningun código debes de tener en cuenta algunas directivas de php (de tu php.ini) sobre el tema de "uploads" .. si no las tienes ajustadas .. no podras hacer un "upload" ... ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. Si Está a ON es permitido Uploads .. A OFF .. no ... file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). upload_tmp_dir = algun directorio de tu sistema de ficheros .. ha de estar creado .. ; Maximum allowed size for uploaded files. upload_max_filesize = 2M Ademas de eso, tienes que tener claro como funciona el sistema de ficheros de tu servidor .. Si usas windows .. las rutas ya sabras que son: c:\directorio\algo\mis_uploads ... y en UNIX/Linux son /algo/algo/mis_uploads .. Eso, tanto para ajustar las directivas del php.ini como para usar la funcion copy() o move_uploaded_files(). Y como dice Phobos .. en sistemas UNIX/Linux deberas tambien de darle permisos de escritura/lectura a tu directorio donde muevas tus ficheros y al directorio temporal q definas para los Uploads. Otro detalle es que conozcas tu versión de PHP y la configuración del tema: register_globals = ON u OFF .... En muchos tutoriales se "asume" register_globals a ON y en consecuencia usan por ejemplo: $nombredelcampofiledetuformulario_parametro .. siendo parametro por ejemplo: tmp_file, name, type, error .... Otros manuales usan el array: $HTTP_POST_FILES['nombredelcampofiledetuformulario']['parametro'] Y ahora, el manual oficial usa el array superglobal: $_FILES['nombredelcampofiledetuformulario']['parametro'] Ahora, la pregunta .. es q método usar para acceder a las propiedades del fichero q subo (q hago el Upload) .. Pues sencillamente depende de la versión de PHP q uses .. Si usas una versión superior a la 4.1.x .. es recomendable que uses el ultimo método ($_FILES) .. Usandolo te dará igual la configuración de register_globals ... Si usas version anterior a la 4.0.? .. deberas usar $HTTP_POST_FILES .. El primer método para nada es recomendable usarlo. Y .. Si tienes problemas con tus "uploads" .. deberias revisar todos los puntos que te menciono (mejor dicho q menciona php.net .. pues yo aquí no hago mas q un resumen ...). Cuando tengas claro q tu configuración está correcta .. ahi pruebas el método (cógido) que quieras atendiendo a las condiciones de tu la versión de PHP q uses ... Y .. Sobre todo, si tienes problemas .. indica que version de PHP usas, que sistema operativo usas y ahora que lo sabes .. indica la configuración q usas en el apartado "file upload" de tu php.ini + el cógido que pretendes usar (el formulario y el script php). Un saludo, Última edición por Cluster; 10/12/2002 a las 07:40 |
| |||
Phobos .. conoces el parametro 'type' del sistema de uploads? en tu caso: (asumiendo globales .. q no te recomiendo usar ...) $archivo_type Eso te devuelve el formato MINE del fichero q estas subiendo .. Es mas seguro mirar su formato MINE q no la extensión solo .. Con te aseguras q sea un GIF (el $archivo_type te devulverá en caso de un gif: img/gif .. si mal no recuerdo). Así evitas que te pueda subir un .exe por ejemplo camuflado en un archivo que solo le cambié la extensión. Un saludo, |