Upload con PHP

No puedo realizar upload de ficheros con php. (php - apache - linux).
Tengo la versión 4.0.4 de php.
Utilizo el método post.
Si mi variable es $fichero, ésta si aparece correctemente en el servidor pero si hago $HTTP_POST_FILES['fichero'][`tmp_name'] es nulo, además si intento ver el valor de $fichero_size, $fichero_name está nulo también, etc.
He intentado a ponerlo de muchas formas, tal y como dice en la página oficial de php, también en un libro que tengo, etc. Pero no hay manera, te agradecería que me dijeras exactamente como escribirlo.
El directorio temporal de upload es /tmp, parece como si realmente no se realizara el upload y php sólo recibiera el "string que recoge la ruta y el nombre del fichero" de la variable tipo file.

1 respuesta

Respuesta
1
$HTTP_POST_FILES['userfile']['type']
$HTTP_POST_FILES['userfile']['size']
Son variables correctas y deberían funcionarte. Si no lo hacen es porque debes tener desactivada la posibilidad de hacer upoload desde PHP. Actívalo en php.ini
Verifica que existe la línea
file_uploads = On ; Whether to allow HTTP file uploads
y también:
upload_tmp_dir = /tmp ; temporary directory for HTTP uploaded files (will use system default if not specified)
upload_max_filesize = 2M ; Maximum allowed size for uploaded files
Las tres opciones que dices están todas activadas en php.ini, pero efectivamente no me funciona ninguna de las funciones que pones.
De hecho, desde un script php de una tienda que me bajé de internet y que tengo instalada sí me hace upload (es bastante complejo y no entiendo bien como lo hace, tiene muchos includes y es difícil seguirle la pista).
Entiendo que el fichero de upload con el nombre que le doy en el navegador es el que me traduce al nombre del servidor (¿Tengo otra forma de conocer dicho nombre, porque el directorio será el upload_tmp_dir?) ¿Cómo puedo hacer debug en php para seguirle exactamente la pista a lo que me está pasando, ya que según creo el fichero temporal lo borra cuando finaliza el script?
Entiendo que el nombre del fichero temporal me lo debería dar:
$HTTP_POST_FILES['fichero'][`tmp_name']
¿Podría tener un bug la versión de php, puedo activar compatibilidad con php3 para probar el upload? ¿En dicho caso, como debo gestionar el upload de los ficheros en php?
He descubierto mi problema. No ponía en la etiqueta <form> enctype="multipart/form-data" y por ello no me recibía el fichero. Gracias por todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas