| Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS | ||||
| ARTICULO: Upload de archivos con PHP |
Se muestran 15 comentarios sin revisar
| Leonardo Lux | 03/11/07 |
| Pueden encontrar una manera más actualizada de subir archivos en: http://cl2.php.net/manual/es/features.file-upload.php (por ejemplo, los arreglos $HTTP_POST_FILES están desactualizados en PHP5. Siempre vean la documentación en php.net). |
|
| ruben | 07/11/07 |
| Hola tengo un problema y es que puedo subir imagenes, pero no videos ni zip, ni nada, no se si es porque estoy trabajando en localhost y hayq cambiar algo en algun .conf o algo, o bien porque mi codigo esta mal, por favor a ver si alguién me lo puede decir. muchas gracias por anticipado. $HTTP_POST_FILES['userfile']['name'] ; $HTTP_POST_FILES['userfile']['type'] ; $HTTP_POST_FILES['userfile']['size'] ; $HTTP_POST_FILES['userfile']['tmp_name']; $idusuario= $datos[0]; //tomo el valor de un elemento de tipo texto del formulario $cadenatexto = $_POST["cadenatexto"]; echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>"; echo "elidusuarioes:" . $idusuario . "<br><br>"; //datos del arhivo $nombre_archivo = $HTTP_POST_FILES['userfile']['name']; $tipo_archivo = $HTTP_POST_FILES['userfile']['type']; $tamano_archivo = $HTTP_POST_FILES['userfile']['size']; echo "tamaño:" . $HTTP_POST_FILES['userfile']['size'] . "<br><br>"; echo "tamaño:" . $tamaño_archivo . "<br><br>"; echo "tipo:" . $HTTP_POST_FILES['userfile']['type'] . "<br><br>"; echo "tipo:" . $tipo_archivo . "<br><br>"; //compruebo si las características del archivo son las que deseo if (!((strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "jpg") || strpos($tipo_archivo, "zip") || strpos($tipo_archivo, "png") || strpos($tipo_archivo, "avi")|| strpos($tipo_archivo, "gif")) && ($tamano_archivo < 2000000000))) { echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 20mg máximo.</td></tr></table>"; }else{ if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){ mysql_query("INSERT INTO videos(titulo,usuarioid,votos,nombreFichero,fechaSubida) VALUES('$cadenatexto','$idusuario','0','$nombre_archivo',CURRENT_DATE) ") or die('Error al actualizar la BBDD'); echo "El archivo ha sido cargado correctamente."; }else{ echo "Ocurrió algún error al subir el fichero. No pudo guardarse."; } } |
|
| Eduardo | 11/12/07 |
| Bueno, yo he probado el codigo tal cual esta en el comienzo de la pagina y no me da problemas ninguno. Lo que me gustaria saber es como puedo cambiar el nombre del fichero que el usuario sube para ponerle el que yo tenga almacenado en una variable como una serie numerica. Gracias. | |
| Ronald | 24/12/07 |
| Muchas graciaaaaaaaaaaaaaaaaas, he sufrido, pero ya funciona, me dio buenas pistas, el amigo que dijo "de seguro que se chingan el error", jeje, que bonita expresion, solo espero que no sea una groceria. Saludos. |
|
| Melchor | 19/1/08 |
| Lo del error que comenta imm.xxx realmente se soluciona con un chmod al directorio donde se localizan los .php, bueno | |
| DoLpHiN | 20/3/08 |
| Yo estoy intentando de hacer lo mismo mpero con archivos de audio, en concreto, archivos "rbs"; mi c´odigo es ´este: <?php $nombre_archivo = $HTTP_POST_FILES["file"]["name"]; $tipo_archivo = $HTTP_POST_FILES["file"]["type"]; $tamano_archivo = $HTTP_POST_FILES["file"]["size"]; if (!strpos($tipo_archivo, "rbs")) { echo "El archivo no cumple los requisitos<br>"; } else { copy($_FILES['cancion']['tmp_name'],$_FILES['cancion']['name']); echo "La cancion se ha agregado a la lista correctamente.<br>"; } ?> Pero lo que sucede es que el c´odigo a pesar de subir una canci´on en "rbs" me tira el error de que el archivo no cumple los requisitos, quer´ia saber si alguien puede ayudarme y decirme lo que estoy haciendo mal... Un saludo, y gracias de antemano.. |
|
| Mauricio | 26/3/08 |
| Quisiera saber como subo el archivo pero llamando la misma pagina | |
| N@i | 23/4/08 |
| Hola estoy utilizando el $_files en un programa que estoy realizando para subir imagenes pero ademas de las caracteristicas comunes como el peso el tipo, etc. Me gustaria saber el tamaño de la imagen que suben al servidor por ejemplo 120x120 como lo hago Gracias por la ayuda | |
| xalo | 11/5/08 |
| Gracias me sirvio aunque debo anotar que si hago todo sobre un mismo script lo aconsejable es hacerlo con $_FILE | |
| sentyluna | 14/5/08 |
| hola lo que pasa se que el codigo funciona perfectamente pero que necesito antes de subir foto o imagen lo que necesito es que se pueda cargar la foto o oimgen en la pagina y despues le de enviar y guarde en su respectiva carpeta la verdad si alguiensabe como hacer esto se lo agradeceria |
|
| SANTOS 10 | 31/5/08 |
| Estoy muy muy muy agradecido por este articulo es excelente y este foro porke ya me ha sacado de varias dudas sobre PHP, espero seguir en contacto, saludos desde MAZATLAN, byeee |
|
| antonio martin | 18/7/08 |
| hola, he usado su script y funciona pero me da problemas con cualquier extension que no sea .txt. ¿alguien sabe porque ocurre esto? la cosa es que no me los pasa del directorio temporal al directorio final. Gracias de antemano |
|
| Agustin | 21/7/08 |
| Una mano (de Dios).... Deseo subir de 1 a (n) archivos al servidor web 1ro: que lo elija y ponga en una lista de espera 2do: al presionar submit, que envie los (n) archivos de un plumazo.. 3ro: Que no pida usuario ni password.. 4to: Que ninguno de ellos sea mayor a 1 Mb 5to: Solamente JPG, GIF, PNG o TXT Gracias |
|
| Hernan | 09/8/08 |
| Aqui les dejo el codigo mejorado que almacena el archivo en una carpeta a definir y que ademas todo el script se ejecuta en un solo archivo. solo hay que modificar el valor de la variable $path con la carpeta del servidor donde queremos que valla el archivo. Bueno aqui va el codigo. El todo el script va en un solo archivo llamado form_upload.php y recuerden cambiar el nombre de la carpeta donde queremos que valla el archivo <? if (isset($_POST['Enviar'])) { //tomo el valor de un elemento de tipo texto del formulario $cadenatexto = $_POST["cadenatexto"]; echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>"; //datos del arhivo $nombre_archivo = $HTTP_POST_FILES['userfile']['name']; $tipo_archivo = $HTTP_POST_FILES['userfile']['type']; $tamano_archivo = $HTTP_POST_FILES['userfile']['size']; //compruebo si las características del archivo son las que deseo if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 90000000))) { echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>"; }else{ $path='productos/'; if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $path.$nombre_archivo)){ echo "El archivo ha sido cargado correctamente.<br> <a href=form_upload.php>Volver</a>"; }else{ echo "Ocurrió algún error al subir el fichero. No pudo guardarse."; } } }else{ echo '<form action="form_upload.php" method="post" enctype="multipart/form-data"> <b>Campo de tipo texto:</b> <br> <input type="text" name="cadenatexto" size="20" maxlength="100"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <br> <br> <b>Enviar un nuevo archivo: </b> <br> <input name="userfile" type="file" size="60"> <br> <input type="submit" name=Enviar value="Enviar"> </form>'; } ?> |
|
| Dario | 12/8/08 |
| Hola, quiero agregar cuatro campos mas para poder subir un archivo por cada field. Alguien puede ayudarme como? gracias |
|
| Ver el articulo y todos sus comentarios | |
| Añadir un comentario del artículo |
|
Comentarios no revisados de: |