Upload de Archivos con PHP

Muchas veces necesitamos hacer uploads de archivos en nuestros proyectos para muchos es algo sencillo pero para los que recién empiezan les explicare como se realiza el proceso. Este upload lo haremos utilizando php.

Este artículo explica solo el proceso de subir archivos con PHP.
Para consideraciones de seguridad pueden leer Seguridad en Upload de Archivos.

upload-php.gif

El primer paso es crear un formulario en el cual se seleccione el archivo a subir, para ello utilizaremos el tag input del tipo file, además hay que tener en cuenta que hay que seleccionar el tipo de encoding para el formulario el cual es: multipart/form-data.

HTML4
  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2.   <input name="archivo" type="file" size="35" />
  3.   <input name="enviar" type="submit" value="Upload File" />
  4.   <input name="action" type="hidden" value="upload" />    
  5. </form>

Luego en la página upload.php que es que se encarga de recibir los datos del formulario (Lo definimos en la propiedad action del formulario). El archivo seleccionado es subido temporalmente a una carpeta, entonces tenemos que copiar el archivo a la carpeta final, en caso contrario este archivo se eliminará automáticamente.

Para acceder a las propiedades del archivo php nos brinda el array $_FILES con las siguientes propiedades, en donde archivo es el nombre del campo con el cual se envió el archivo desde el formulario:

  • $_FILES['archivo']['size']: tamaño en bytes del archivo recibido
  • $_FILES['archivo']['type']: tipo mime del archivo, por ejemplo image/gif
  • $_FILES['archivo']['name']: nombre original del archivo
  • $_FILES['archivo']['tmp_name']: nombre del archivo temporal que se utiliza para almacenar en el servidor el archivo recibido

Algo que hago siempre es anteponer 6 caracteres aleatorios antes del nombre del archivo, esto para evitar duplicidad de nombres de los archivos.

php
  1. $status = "";
  2. if ($_POST["action"] == "upload") {
  3.     // obtenemos los datos del archivo
  4.     $tamano = $_FILES["archivo"]['size'];
  5.     $tipo = $_FILES["archivo"]['type'];
  6.     $archivo = $_FILES["archivo"]['name'];
  7.     $prefijo = substr(md5(uniqid(rand())),0,6);
  8.    
  9.     if ($archivo != "") {
  10.         // guardamos el archivo a la carpeta files
  11.         $destino =  "files/".$prefijo."_".$archivo;
  12.         if (copy($_FILES['archivo']['tmp_name'],$destino)) {
  13.             $status = "Archivo subido: <b>".$archivo."</b>";
  14.         } else {
  15.             $status = "Error al subir el archivo";
  16.         }
  17.     } else {
  18.         $status = "Error al subir archivo";
  19.     }
  20. }

Todos los archivos se copiarán a la carpeta /files por que así lo definimos a la hora de copiar el archivo. Hay que tener en cuenta que la carpeta a donde se copiarán los archivos deben tener permisos de escritura en caso contrario se devolverá un error.

Ahora si tienes un hosting deberás cambiar los permisos, esto se hace comúnmente con un cliente de FTP que utilizas para subir tus archivos al hosting. Por ejemplo yo utilizo el FlashFXP como cliente de FTP y hay una opción llamada Atributes (CHMOD) para cambiar los permisos como se muestra en la siguiente imagen.

chmod-hosting.gif

En nuestro ejemplo no hemos utilizado las propiedades size y type, pero ustedes la pueden usar para restringir a un máximo de tamaño de archivo o restringir a cierto tipo de archivos por ejemplo solo permitir subir imágenes. Para finalizar, hemos agregado estilos a nuestra página creada y además hemos listado los archivos subidos a la carpeta files. Pueden descargar los archivos fuente para que practiquen y hagan sus pruebas.

Comentarios Total 379 comentarios


cesar
Publicado: 30/12/2006 7:08 pm

Disculpen mi ignorancia, pero no entendi bien el tutorial, necesito urgentemente hacer eso mismo pero para cambiar noticias y de todas formas con las imagenes, pero no entiendo algo…

el primer codigo va en un html?
y el segundo que muestran es para un PHP ?

recien comienzo en este mundo y si me pueden explicar mas a prueba de idiotas les estaria muuuuy agradecido..
Saludos

unijimpe
Publicado: 31/12/2006 1:56 am

Hola, claro que necesitas dos archivos: un html que se encarga de pedir que subas el archivo y un php que se encarga de procesar los datos que ha enviado el html. Otra forma es que sea un solo php que tenga las dos cosas, es decir que te pida subir y luego que procese los datos. Descarga los archivos de ejemplo pruebalo y lo entenderas mejor.

CyberAngel
Publicado: 11/01/2007 10:11 pm

Pruebo este script y me da error de escritura en el directorio temporal del servidor. Ya le verifique que todos los directorios tengas todos los permisos de lectura/escritura. El ejemplo de esta pagina da error, te lanza un Warning por un permiso negado de escritura. Hay alguna otra forma?

unijimpe
Publicado: 12/01/2007 12:18 am

La unica forma de subir archivos es esta, a ver si me mandas un screenshot de tu pantalla de error para ver como puedo ayudarte, pero de antemano es un tema de permisos. Verifica todo nuevamente.

Emmanuel
Publicado: 05/02/2007 11:42 pm

Hola, me funciona a la perfección, pero necesito hacer lo mismo con archivos grandes zip, por ejemplo 5 megas. pero no me deja, por favor lo necesito, gracias

unijimpe
Publicado: 07/02/2007 2:21 am

Lo que pasa que generalemente PHP esta configurado para subir como maximo 2MB y tambien que el script se detiene en un maximo de tiempo, tu solucion es editar el archivo de configuracion php.ini para dar los permisos necesarios.

Vic
Publicado: 08/02/2007 4:46 am

Muy buen tutorial, tenes idea como hacer uploads con el API de dreamweaver?

Slds!

Diego
Publicado: 08/02/2007 3:09 pm

Muy buen tutorial, la verdad sos un groso, pero una cosa… en el ejemplo que tenes vos aparece toda la lista de archivos subidos. ¿Como hago que solo aparesca el link del archivo que se subió? Respondeme porfavor… Saludos

unijimpe
Publicado: 08/02/2007 10:09 pm

Hola, bueno para mostrar los archivos que has subido, debes utilizar la funcion readdir para leer los archivos de una carpeta, el ejemplo de ello esta en el archivo del ejemplo.

Diego
Publicado: 09/02/2007 12:52 am

Perdona pero ni idea que es readdir recien empiezo con php, ya sabia HTML, QB, AS, y algo de VB.
Si podes me mandas el codigo completo que tengo que poner por mail?, die_93@hotmail.com necesito algo al estilo de esta pagina http://www.subelo.net

Gracias

Michelin
Publicado: 21/02/2007 4:29 pm

Hola a todos, alguien sabe como se puede subir mas de 2 archivos en el mismo

maraericamora
Publicado: 10/03/2007 5:13 pm

El formulario me carga pero al subir me da error en la pàgina y nada sube.

unijimpe
Publicado: 10/03/2007 11:03 pm

A ver si enviar el error que te sale te podría ayudar. Otra posibilidad es que me des la dirección para revisar como esta funcionando.

Edward2hot
Publicado: 16/03/2007 5:57 am

hola quiero restringir cierto tipo de archivos e modificado type pero sige cargano videos y solo quiero cargar imagenes si pudieran en viarme todo el codigo para que suban solo imagenes gracias att:edward2got@hotmail.com.
http://www.videos.iespana.es

unijimpe
Publicado: 17/03/2007 5:36 pm

Si deseas solo subir imágenes el código seria el siguiente:
< ?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {
if ($tipo == "image/gif" || $tipo == "image/jpeg" || $tipo == "image/jpg") {
$destino = "uploads/".$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error: solo se permite GIF o JPG";
}
} else {
$status = "Error al subir archivo";
}
}
?>


[...] Pujar un arxiu al servidor amb PHP [...]

Franckcisko
Publicado: 22/03/2007 7:40 pm

hola el codigo me funciona bien solo que aparece el sig. mensaje:

Notice: Undefined index: action in /var/www/vhosts… on line 3

En el código php tengo lo siguiente

Franckcisko
Publicado: 22/03/2007 7:47 pm

mmmm a ver si esta vez si pueden ver el codigo….

espero puedan ayudarme saludos…

Franckcisko
Publicado: 22/03/2007 7:49 pm

no entiendo xq no se muestra el codigo pero en la linea 3 está eso de que si action es igual a upload: if ($_POST["action"] == “upload”)

unijimpe
Publicado: 22/03/2007 11:17 pm

Hola, bueno no se muestra código, por que lo que enviaste es código PHP y el blog previene que alguien ingrese código que se podría ejecutar y dañar el blog.

Respecto al punto que mencionas, no es ningún error, es un Notice que significa que es una nota para tomar en cuenta, esto es para tema de depuración. Ahora bien este mensaje aparece por que por defecto la variable $_POST["action"] no existe al inicio, existirá luego que hayas presionado el botón Upload File.

Para eliminar este mensaje debes configurar tu archivo php.ini para que no devuelva estos mensajes o de lo contrario puedes colocar el siguiente código en la primera linea de tu archivo php:

error_reporting(E_ERROR);

El cual solo mostrará los errores. Puedes leer mas acerca de este punto en: http://us3.php.net/error-reporting.

Franckcisko
Publicado: 23/03/2007 9:22 pm

Hola bueno muchas gracias me fue de gran utilidad, inconformidad solucionada.

Franckcisko
Publicado: 23/03/2007 9:59 pm

Hola me surgió otro pequeño imprevisto… Lo que sucede es que tuve la necesidad de que después de cargar, con algun boton me envie a otra pagina pero si depués deseo regresar me dice que la pagina ya expiró

Causa más probable:
La copia local de esta página web no está actualizada y el sitio web requiere descargarla de nuevo.

como puedo hacer para que no expire o que solucion me recomiendas
Saludos…

unijimpe
Publicado: 24/03/2007 1:19 am

Lo que sucede es que cuando envías los datos mediante un formulario, de allí vas a otra página y luego intentas regresar a la página a donde se enviaron los datos, te dirá que la página ha expirado pues esta intentando recibir nuevamente los datos. Para ello una vez finalizado el envío del formulario es bueno hacer una redirección a un mensaje de confirmación.

Manuel
Publicado: 25/03/2007 5:00 pm

Me da el error 6 cuando imprimo, $archivo = $_FILES["archivo"]['error'];

Sabeis que significa

unijimpe
Publicado: 25/03/2007 5:57 pm

Te da un error pues la matriz $_FILES solo tiene como indices: name, type, size, tmp_name.

Puedes obtener mas información en: http://www.php.net/features.file-upload

Eric
Publicado: 30/03/2007 1:41 am

tu tutorial es el mejor q he encontrado, y me funciona todo al 100%… pero unicamente cuando lo pruebo en mi makina… cuando lo subo a un hosting (y la carpeta files tiene permisos), los archivos no se suben… donde tiene q ir esa carpeta? espero q me ayudes en esta duda q tengo… gracias x el tutorial…

Yortx
Publicado: 10/04/2007 5:55 pm

Hola, tal como explicas, con $_FILES["archivo"]['size'] podemos comprobar el tamaño del archivo y decidir si lo guardamos o no. Pero para eso el archivo debe haberse subido entero para ver luego su tamaño.
Se puede limitar el tamaño del archivo que pueden subir antes o mientras lo están subiendo? Es decir, q si ha enviado ya los 2 megas q le dejo, y sigue enviando datos, que lo pare ya, y no espere a tener el archivo entero para decir q no vale.

Cristian
Publicado: 12/04/2007 6:56 am

Hola, gracias por esta solución tan práctica. Además te agradezco que funcione porque he probado varias alternativas de la red y no pasa nada, siempre tienen muchos problemas los scripts.

LA PREGUNTA:
¿Cómo puedo agregar un botón al lado del nombre de cada archivo en el listado para poder borrar el archivo que ya he subido?

Se que hay que usar la función “unlink” pero no sé cómo incorporarla en un botón.

Edward2hot
Publicado: 16/04/2007 1:36 am

hola quiero dar las gracicias por que me acervido de mucho no creia que esto funcionara y si podeis darme algun comentario de mi pagina web me gustaria saber vuestra opinion … agradeseria mucho vuestras sugerencias y comentarios att:edward2got@hotmail.com.
http://www.videos.iespana.es

Carlos Flores
Publicado: 16/04/2007 3:36 am

Excelente tutorial!!!
Gracias…

Maria
Publicado: 16/04/2007 10:44 am

Hola, muy bueno el tutorial, pero tengo una duda que a ver si me podeis ayudar. No se como hacer para que me deje subir varios archivos con el mismo nombre sin que esto produzca que se eliminen los que ya estaban alli. muchas gracias y a ver si me podeis echar una mano

Erick Paul Reyes
Publicado: 19/04/2007 12:09 am

Me gusta estas ayudas pero quisiera que ademas de eso, cuando cargo el alchivo lo coloque a la carpeta con otro nombre (en mi caso lo recoje de la base de datos)sin dañar la extencion EJE: cargo el archivo “erick.doc” lo cargo a otra carpeta con la aplicacion con este nombre “01.doc”

unijimpe
Publicado: 19/04/2007 11:28 am

En nuestro ejemplo cuando se hace upload de archivos nosotros creamos un número aleatorio que lo concatenamos al nombre original del archivo, esto evita que se generen dos archivos con el mismo nombre.

Respecto a guardar los archivos con un nombre que lo tienes desde tu base de datos, lo que se hace es primero obtener la extension del archivo, para ello se utiliza la función split.

$arrfile = split(“.”, $archivo);
$vext = $arrfile[1];
$destino = “files/”.$nombreDB.”.”.$vext;

Donde $nombreDB es el nombre con el que se guarda en la base de datos.

Erick Paul Reyes
Publicado: 19/04/2007 9:41 pm

Hey viejos ustedes son una calidad de genios ,gracias

walter
Publicado: 23/04/2007 7:44 am

muy bueno ya entendi como funciona pero si yo quiero que ademas de subir el archivo me cree una pagina con un link a los archivos que voy subiendo como se hace ?

walter
Publicado: 23/04/2007 7:53 am

perdon redacte mal la pregunta lo que necesito es que los visitantes puedan subir archivos tipo word excel etc y se agregue en una pagina ordenado alfabeticamente.
Para que otros usuarios lo puedan descargar intercambiando archivos.
ya cree una base de datos pero no puedo subir el archivo a ella .
Gracias

manuel
Publicado: 28/04/2007 8:13 pm

no se si es que yo soy muy leto pero para borrar como es que no comprender
yo busco como borrar imagenes de un archivo

manuel
Publicado: 28/04/2007 9:14 pm

no se si es que yo soy muy lento pero esque no se como borrar los archivos es que busco un script para borrar imajenes de un archivo
pero solo la seleccionada te agradesco

lix
Publicado: 30/04/2007 10:49 am

Cómo sería para hacer un formulario para subir una imagen al servidor y además unos datos rellenado al mismo tiempo en el formulario, tipo: titulo de la imagen, descripcion, fechat, etc? (con base de datos)
gracias

heriplus
Publicado: 03/05/2007 5:29 pm

hola bueno este codigo es el q buscaba pero como seria para q aceptara solo archivos .txt y los demas los denegara

urbiel
Publicado: 16/05/2007 11:56 am

Hola, el codigo para hacer upload me funciona muy bien, gracias.

**Como quedaria el codigo php para permitir que los usuarios puedan ver y bajar a su maquina los archivos ya subidos, suponiendo que este es el directorio donde se almacenan los archivos “C:/easyphp1-8/www/agenda/files/

unijimpe
Publicado: 17/05/2007 10:11 pm

Para que los usuarios puedan leer los archivos que has subido, tendrías que hacer una función para leer los archivos de la carpeta deseada, esto se hace utilizando la función opendir de PHP. En el archivo de ejemplo he puesto la opción para visualizar los archivos que se han subido.

laritza
Publicado: 19/05/2007 5:51 pm

Soy nueva trabajando con php y necesito saber, como puedo a la vez que cargo el archivo insetar su nombre en la base de datos en donde debe estar almacenado

daniel
Publicado: 21/05/2007 6:13 pm

necesito saber como en el ejemplo que tienes para que automaticamete te muestre el file que subes, podiras mandar el codigo tal cual lo tienes en tu file upload.php gracias y saludos

esther
Publicado: 22/05/2007 7:56 pm

hola!no se si sk me liao o k me pasa,pero necesito el script para subir la foto ami base de datos [phpMyAdmin]y posteriormente verla en la pagina ala k la envio…gracias!!!

roberto
Publicado: 22/05/2007 9:10 pm

que bueno el aporte lo probe me salio pero tengo una duda cuando quise solo subir imagenes me da un error.
simpre va eso de image/gif
(image) es una variable declarada por uno ?

Arturo
Publicado: 23/05/2007 10:30 pm

Excelente me sirvio de mucho gracias

laritza
Publicado: 24/05/2007 9:12 pm

Necesito saber por que cuando intento subir una archivo de al menos 3 mb me da error y no lo puedo subir, por favor quien me pueda ayudar, esto es para la tesis de graduación y necesito solucionar ese problema

unijimpe
Publicado: 25/05/2007 6:49 am

Sucede que php esta configurado para aceptar archivos con un cierto limite de tamaño, esto se configura en el archivo php.ini de tu php, para ello abres el archivo php.ini y buscas la palabra:

post_max_size

Donde puedes asignarle el valor máximo que soportará cuando se hace upload.

Cristina
Publicado: 25/05/2007 4:23 pm

Muchas gracias unijimpe, me ha ayudado mucho tu tutorial. Sólo tube un problema con los permisos que fue fácil de solucionar

laritza
Publicado: 26/05/2007 11:59 pm

Muchas gracias ya pude configurarlo y todo me funciona perfecto….

Karla
Publicado: 02/06/2007 2:08 am

Hola estoy probando tu tutorial y me parece muy práctico. Pero tengo un problema, no me envia errores, pero tampoco hace nada. Los arreglos $_POST y $_FILES, están vacios al imprimirlos desde upload.php. Puedes ayudarme con ello. Muchas gracias.

laritza
Publicado: 02/06/2007 3:52 am

Hola a todos:

Alguien podría decirme la forma de borrar un archivo despues que ya este se halla cargado al servidor, el objetivo es no tener archivos guardados que realmente sean obsoletos.
Además necesito saber como yo puedo a la vez que cargo el archivo incorporarlo a la base de datos

laritza
Publicado: 02/06/2007 8:12 pm

por favor necesito una respuesta rapida, es que lo tengo que utilizar en mi tesis de grado, gracias de antemano….

steven
Publicado: 06/06/2007 7:11 am

el titulo de webmaster es un sofisma de distracción, la verdad es que soy bueymaster.
1) Da gusto llegar a un blog como el suyo
2) El respeto y la humildad que usted emplea para responder al foro, deja de manifiesto su calidad humana y su profesionalismo.
3) Abusando de su buena voluntad deseo consultar lo siguiente:
a)hice el form html y lo llamé envio_aportaciones.html
b)creé la pag upload.php con el script respectivo
c)Generé la carpeta files y le di los permisos de escritura con mi prog para FTP.
Y no me suben los archivos, en cambio me aparece esto:
$status = “”; if ($_POST["action"] == “upload”) { // obtenemos los datos del archivo $tamano = $_FILES["archivo"]['size']; $tipo = $_FILES["archivo"]['type']; $archivo = $_FILES["archivo"]['name']; $prefijo = substr(md5(uniqid(rand())),0,6); if ($archivo != “”) { // guardamos el archivo a la carpeta files $destino = “files/”.$prefijo.”_”.$archivo; if (copy($_FILES['archivo']['tmp_name'],$destino)) { $status = “Archivo subido: “.$archivo.”"; } else { $status = “Error al subir el archivo”; } } else { $status = “Error al subir archivo”; } }

Bueno, la verdad es que seguiré visitando su blog, definitivamente así por ahora no me funcione, no m epuedo despedir sin agradecer su calidad y su lujo de competencia.

steven
Publicado: 06/06/2007 8:08 am

Ya está resuelto mi problema, gracias de nuevo y muchos éxitos en todos sus proyectos.

Miqueas
Publicado: 09/06/2007 9:15 pm

WENO AQUI VISITANDO LA PAGINA. . . DE MUCHA A AYUDA PARA MUCHOS SIN DUDA, Y PS MUY SENCILLO Y DE MUCHA UTILIDAD, GRACIAS POR TODO A LA WEB Y A LOS MASTER´S!! SALUDOS.

Eduardo
Publicado: 10/06/2007 8:05 pm

MUCHISIMAS GRACIASME ESTUBE MUCHO TIEMPO BUSCANDO ESO…

Rogelio
Publicado: 14/06/2007 8:16 am

Hola que tal. Oye me gustaría saber cómo implementar el botón de eliminar cada archivo ahi mismo, cóm puedo hacer eso? ojalá me puedas ayudar, de antemano, gracias.

unijimpe
Publicado: 15/06/2007 11:07 am

Voy a preparar un ejemplo para eliminar archivos que se han subido mediante este proceso.

kZen
Publicado: 21/06/2007 1:49 pm

Tengo una duda, que pasaria el usuario esta enviando un archio con espacio ejemplo “dia dos del tres.doc”, que se puede hacer en ese caso, y si no fuera tanta la molestia, al momento de subir el archivo subir comentarios extras a una DB, mas o menos como seria?.. Gracias de antemano

Snick
Publicado: 22/06/2007 10:35 pm

Una pregunta..
Como puedo hacer para agregarle barra de progreso..
Osea Mediante va subiendo salga una barra q diga 10% 20% y sucesivamente
Algo como sale cuando subes en rapidshare o sendspace

Salu2

Calipo007
Publicado: 04/07/2007 12:40 am

muy bueno!! saludos

Juan Luis Oropeza
Publicado: 04/07/2007 7:59 pm

Muy Bueno el tutorial… me funcionó perfectamente, muy buena explicación ademas.

Quisiera saber como hago si desde el propio website requeriese borrar algun archivo subido a la carpeta.
tengo el sigiente link al lado del nombre del archivo que coloco en el listado ( de c/u):

[Eliminar]

cual seria la sentencia para referirme a este archivo cuando vaya a la pagina donde haga efectiva la eliminación? y como la elemino puntualmente?

Esas son mis dudas por favor respondan

Andrés
Publicado: 05/07/2007 10:26 pm

Funciona de puta madre, gracias hace como 2horas que estoy tratando de resolver el problema. Saludos

NOJDO
Publicado: 12/07/2007 10:11 am

Como hago para que salgan los links despues que suba la imagen?

Gracias..

Julia
Publicado: 20/07/2007 9:46 am

Felicitaciones el tuto es muy bueno
Gracias

José
Publicado: 20/07/2007 8:07 pm

Hola a todos, cargo un archivo para leerlo desde una aplicación web PHP que esta en un servidor linux (en este momento no tengo conocimiento de la versión de linux), resulta que la aplicación envia y procesa archivos nmenores de 8 mb aprox. estoy tratando de enviar una archivo de 10 Mb y no lo hace.

Incluso al archivo de 10 Mb le quito información y lo dejo de 7 Mb y lo sube y procesa sin problema, con esto se descarta que el archivo pudiese estar corrupto.

Cuando le doy al boton de enviar el archivo solo aparece el mensaje en la parte inferior del navegador “enviando petición a XXXX” luego la página se recarga y no aparece nada, ni un error.

De verdad no se que hacer, tuve problemas comunes como el tamaño maximo del archivo con los archivos de 3 Mb, luego el error de tiempo máximo de ejecución de un script con los archivos de 7 Mb, pero con los de 10 Mb ni idea de lo que pudiera estar pasando… a menos que no tenga nada que ver con PHP, sino con el servidor de Linux.

Gracias de antemano por cualquier sugerencia.

jorge
Publicado: 20/07/2007 8:36 pm

Buenas…. pues yo tengo un Uploader flash bastante bueno… pero necesito enviar la informacion a un upload.php… (no hace falta que sea complejo… con esto vale)

pero resulta que me formatee el Ordenador… y ahora… nose porque al hacer el archivo en el block de notas al guardarlo me lo guarda asi…

upload.php.txt… y asi no me va… que me recomendais…bajarme algun programa (como dream weaver) o lo del block de notas se podria solucionar?

GRACIAS

unijimpe
Publicado: 22/07/2007 12:32 am

Jose: Sucede que php esta configurado para aceptar archivos con un cierto limite de tamaño, esto se configura en el archivo php.ini del servidor, para ello abres el archivo php.ini y buscas la palabra: post_max_size Donde puedes asignarle el valor máximo que soportará cuando se hace upload.

Jorge: en tu caso lo que pasa que Windows esta ocultado la extensión verdadera de tu archivo, lo que puedes hacer es en el explorador de archivos, seleccionas Herramientas > Opciones de Carpeta > Ver y desmarcas la opción Ocultar Extensiones de archivo.


[...] La presente es un tutorial de como implementar un sistema de alojamiento de imágenes hecho en PHP, este ejemplo esta basado en Upload de Archivos con PHP, este sistema consiste en un formulario para seleccionar la imagen, luego se verifica el tipo de archivo para luego guardarlo en el servidor, finalmente se genera una ruta mediante el cual se puede acceder a la imagen. [...]

divina
Publicado: 23/07/2007 9:34 am

hola
necesito tu ayuda,necesito guardar en una tabla de la bd,los archivos o las rutas delos archivos PDF. como haria esto?
utilizando tu codigo.

gracia de antemano

José
Publicado: 23/07/2007 11:38 pm

unijimpe: Jose: Sucede que php esta configurado para aceptar archivos con un cierto limite de tamaño, esto se configura en el archivo php.ini del servidor, para ello abres el archivo php.ini y buscas la palabra: post_max_size Donde puedes asignarle el valor máximo que soportará cuando se hace upload.

Ya los valores los configure asi: memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 300

Y aun asi no hace nada, ni emite mensajes de error.

Aca esta mi post original:

Hola a todos, cargo un archivo para leerlo desde una aplicación web PHP que esta en un servidor linux (en este momento no tengo conocimiento de la versión de linux), resulta que la aplicación envia y procesa archivos nmenores de 8 mb aprox. estoy tratando de enviar una archivo de 10 Mb y no lo hace.

Incluso al archivo de 10 Mb le quito información y lo dejo de 7 Mb y lo sube y procesa sin problema, con esto se descarta que el archivo pudiese estar corrupto.

Cuando le doy al boton de enviar el archivo solo aparece el mensaje en la parte inferior del navegador “enviando petición a XXXX” luego la página se recarga y no aparece nada, ni un error.

De verdad no se que hacer, tuve problemas comunes como el tamaño maximo del archivo con los archivos de 3 Mb, luego el error de tiempo máximo de ejecución de un script con los archivos de 7 Mb, pero con los de 10 Mb ni idea de lo que pudiera estar pasando… a menos que no tenga nada que ver con PHP, sino con el servidor de Linux.

Gracias de antemano por cualquier sugerencia.

fabio
Publicado: 25/07/2007 9:02 am

SALUDOS A TODOS

Resulta que hice lo del formulario para subir archivos y me funciona de maravilla con archivos pequeños. Al querer enviar archivos grandes me pasa lo mismo que ya se ha escrito, me da error y no sube nada. En mi caso mi servidor es linux, y no se como cambiar los datos de este archivo php.ini.

Además si no me da error, parece que el subir el archivo fue exitoso pero no sube nada.

Asi que como hago para encontrar este archivo y editarlo?

PD: no me sube un archivo pdf de 3MB

Saludos y Gracias

pollylla
Publicado: 31/07/2007 1:55 am

hola, mi consulta es como ppuedo ver los archivos subidos,porque al revisar en la base de datos, me guarda esta ruta:
c:/wamp/www/php78A.tmp
y de ahi se supone que yo llamo los datos que estan guardados en ese campo, pero en la lista donde debiera mostrarse el nombre del archivo subido, aparece lo que esta guardado en la base de datos, y al ingresar al link, me dice esto:

c:/wamp/www/php8FF.tmp
que hago para solucionar esto?, a que se debe?
saludos, espero q ue me puedan ayudar

Juan Jose
Publicado: 11/08/2007 8:54 pm

hola, he escrito un codigo casi igual que el de unijimpe para que me suban los archivos al servidor, pero no hay manera. el codigo es el siguiente:

“;
echo “el nombre del archivo es “.”‘”.$nombre.”‘”;
echo “el tipo del archivo es “.”‘”.$tipo.”‘”;
echo “el tamaño del archivo es “.”‘”.$tamano.” bytes’”;
}
else
{
echo “no se ha podido subir el archivo”;
}

en la variable $ruta especifico la carpeta de mi servidor adonde quiero copiar el archivo subido, en este caso en la carpeta “images”, que pertenece al directorio raiz de mi servidor: es decir, seria “www.miservidor.com/httpdocs/images”, pero por mas veces que lo intento, siempre me dice “no se ha podido subir el archivo”

mi direccion de correo es “juan_jose_gp@hotmail.com” y tambien tengo cuenta en messenger, me gustaria que me respondieras a mi e-mail y si tienes cuenta en messenger, podriamos hablar por ahi
?>

Juan Jose
Publicado: 11/08/2007 8:55 pm

se me olvidaba un detalle: la carpeta “images” de mi servidor tiene habilitado el permmiso de escritura, y me sigue dando problemas

unijimpe
Publicado: 11/08/2007 10:11 pm

Tu problema es un tema de rutas, por ejemplo si tu archivo para subir las imágenes se llamada upload.php y tienes la carpeta images en la misma ruta donde esta upload.php la ruta que debes colocar es “images/”. Verifica bien el tema de rutas absolutas y veras que funciona.

Juan Jose
Publicado: 13/08/2007 12:45 am

¿a que departamento de esta pagina web me tengo que dirigir para preguntar esta duda sobre php y mi pagina web?
La duda es sobre cómo hacer que mi sitio web se traduzca automaticamente al idioma del pais en el que se esta viendo

Juan Jose
Publicado: 13/08/2007 12:48 am

¿como conseguir, con php si es posible, que mi sitio web se traduzca automaticamente al idioma del pais en el que se esta viendo?

Juan Jose
Publicado: 13/08/2007 3:50 am

hola otra vez, he mirado eso que me dijiste y la ruta esta mas que verificada y es la que dije y sigo diciendo. Mi ruta es “www.miservidor.com/httpdocs/images”, donde “httpdocs” es la carpeta raiz de mi servidor, e “images” es una subcarpeta del directorio raiz donde quiero guardar los archivos subidos. Lo he intentado varias veces, incluso con archivos distintos, pero nada, me dice que “el archivo se ha subido”, mostrandome, segun mi codigo, su nombre, tipo y tamaño. Me voy a mi servidor, refresco toda la lista, me meto a la carpeta “images”, la cual tiene permiso de escritura en todos sus apartados, y tiene puesto el famoso 777, y nada, no hay manera. Por falta de calidad de mi servidor dudo que sea, ya que mi servidor esta alojado en HOSTALIA, empresa de alojamiento web que cuenta con dos certificados de calidad en su haber. Por favor, necesito urgentemente tu ayuda, ya que la actividad de mi sitio web va a consistir en que los usuarios puedan ojear las imagenes en el contenidas, y que puedan enviar las imagenes a mi web, previamente registrados. Mi e-mail ya lo sabes, si quieres contactar conmigo te puedo dar mi numero de telefono, pero por e-mail

Archivo subido
VOLVER
“;
echo “el tipo del archivo es “.”‘”.$tipo.”‘”;
echo “el tamaño del archivo es “.$tamano.” bytes”;
} else {
echo “no se ha podido subir el archivo”;
}
?>

ya funciona
Publicado: 13/08/2007 9:54 pm

ya me funciona. para conseguir eso, ademas de poner ese codigo, que era el que tu decias, hay que “refrescar” la lista de archivos de la carpeta donde los quiero meter, entonces aparecen. gracias por todo

Sergio
Publicado: 19/08/2007 10:49 pm

Estoy montando un portal todo en php (soy novatillo) y para subir archivos he estado buscando información, código ya hecho etc etc. No me ha funcionado ninguna vez, aunque este es el que mas se me ajusta a lo que quiero. Me salt aun error cuando envio el formulario a upload.php que es este: “[Warning: copy(files/89e005_628842g.gif) [function.copy]: failed to open stream: No such file or directory in C:\Archivos de programa\EasyPHP 2.0b1\www\upload.php on line 13]” por otra partre decir que trabajo en local, osease en mi maquina, no he subido nada a internet. A ver si alguién sabe que es lo que puede ocurrirme. Gracias.

Sergio
Publicado: 19/08/2007 10:51 pm

Se me olvidaba, he modificado algo el upload.php pero solo para quitarle los intros y los comentarios y poner el tmp_name en una variable para que la coja directamente desde ahi. CODIGO: “[".$archivo."";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
?>]“

Sergio
Publicado: 19/08/2007 10:55 pm

VALE, YA SOLVENTÉ MI PROBLEMA, NO TENIA CREADA LA CARPETA FILES, POR ESO ESE ERROR. :S fallos como estos me encuentro con 1000 al dia, que horror.
FELICIDADES X EL BLOG Y X LOS RECURSOS QUE AQUÍ HAY.

jymme
Publicado: 24/08/2007 4:47 am

Hola oye me puedes ayudar me sale este error
Parse error: syntax error, unexpected $end in /data/www/net.athost.vhosts/t/tev.athost.net/public_html/upload.php on line 23

te agradeceria

Franco
Publicado: 24/08/2007 5:08 am

Hola unijimpe, he entendido bien, pero necesito que me orientes, lo que pasa es que despues de ya tener archivos en el servidor, quiero bajarlos, pero no me sirve mostrar solo el nombre del archivo y su extensión, sino que quiero tener una cierta descripcion de ese archivo para que la persona que lo quiera bajar se de cuenta que ese es el archivo que quiere por la desripción, que uso BD, como lo hago. Ayudame porfa!!!

Candido
Publicado: 30/08/2007 3:07 am

Te felicito por este tutorial. Pero tengo un problema, hay alguna forma de hacer el upload pasándole la ruta como una variable al upload.php en lugar de usar el botón “examinar”. Es que mi problema es el siguiente, yo genero de un archivo .XML y deseo que justo cuando lo creo, automáticamente se envíe mediante un post a una dirección.
Sería posible de alguna forma??

Un saludo y muchas gracias

malvadoxxx
Publicado: 31/08/2007 8:32 am

Por favor orientame como puedo hacer un programa en Java o en C, para poder pasar de un texto plano(lectuta de un archivo). a un html.

Javier
Publicado: 05/09/2007 12:18 am

Yo uso un script para subir los archivos, tengo el directorio en 777 pero cuando subo un archivo lo sube en 600 y obviamente no me permite verlo, que puede ser?

Sergio
Publicado: 12/09/2007 2:25 am

Hola muy buenas.
Gracias a el tutorial me sube los archivos a la carpeta files, pero yo necesito pisar cada vez el archivo que he subido ya que lo tengo que actualizar cada poco tiempo, es decir, subir siempre el mismo archivo excel.
Como podria hacerlo???
Gracias de antemano.

unijimpe
Publicado: 13/09/2007 9:26 am

Lo que debes hacer es modificar la linea en la cual se genera el nombre aleatorio para el archivo, esto lo puedes hacer reemplazando:

$destino = "files/".$prefijo."_".$archivo;

Y reemplazarlo por ejemplo por:

$destino = "files/miexcel.xls;

Entonces cada ves que subas un archivo se guardará siempre con el mismo nombre.

Piccolox
Publicado: 15/09/2007 5:19 pm

saludos, amigo excelente tutorial, desearia recibir ayuda en lo siguiente, poseo un formulario en PHP que envia los datos solicitados a un mail de nuestra web a fin de tratarse esos datos luego, ahora bien todos los campos del formulario me funcionan perfectamente al enviarse al mail, mi problema resulta en que me gustaria anexar este campo de adjuntar una imagen o varias si es posible a dicho formulario y que toda la informacion nos llegue en un mismo correo, el formulario en cuestion se encuentra en este link, muchas gracias por la ayuda que me puedan brindar

http://www.tusdj.com/planilla.php

Sergio
Publicado: 17/09/2007 5:18 pm

Muchas gracias por la ayuda!!

joaquin
Publicado: 09/10/2007 11:14 am

Teniendo este codigo, como puedo implantar el renombre de archivo con nºs aleatorios como vuestro ejemplo:
if (!move_uploaded_file ($_FILES['userfile']['tmp_name'],$base_Dir.$_FILES['userfile']['name']) || !mosChmod($base_Dir.$_FILES['userfile']['name'])) {
mosRedirect(“index.php?option=$option&Itemid=$Itemid”, _EVENTS_IMAGEFAIL.” “);
} else {
$file = $base_Dir.$userfile_name;

//chmod Bild
@chmod ($file, octdec($imagechmod));

//Vorbereiten auf Thumbnailerstellung
$thumbdir = $base_Dir.’small/’;
$save = $thumbdir.$userfile_name;

if ($imageprob = 1) {
$imageprob = TRUE;
} else {
$imageprob = FALSE;
}

joaquina
Publicado: 09/10/2007 11:38 pm

mi duda es ¿Alguien sabe como hacer para que cuando subas una imagen al servidor, con upload, esta tenga un nombre aleatorio y no pueda sustituir a otra ya existente?

StoRm
Publicado: 11/10/2007 3:17 am

unijimpe muchas felicidades y sobre todo muchas gracias por el tutorial hace dos horas no sabia hacer un uploader y ahora gracias ati ya se como hacerlo!!!

Solo tengo una pregunta, cn ese uploader.. se puede subir muxa “basura” los usuarios… podrias enseñarme alguna restriccion por tiempo o algo por subidas “x” subidas al dia. Te lo agradeceria un monton,

Gracias de antemano, espero tu contestacion

itsalinas
Publicado: 17/10/2007 8:59 pm

holap, sabes que hice un gestor para upload, pero mi problema es que cuando subo un archivo .zip se pierde el formato de este…y no lo puedo descomprimir…

**** error *****
Archive: pages.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
note: pages.zip may be a plain executable, not an archive
unzip: cannot find zipfile directory in one of pages.zip or
pages.zip.zip, and cannot find pages.zip.ZIP, period.

miguel
Publicado: 19/10/2007 8:21 pm

la verdad no entendi bien qp2 con php explicamelo

emanuel
Publicado: 22/10/2007 10:54 pm

Quisiera asber si existe una forma en la que no tenga que colocer un campo de tipo examinar sino que con el nombre del archivo se pueda hacer el upload a un servidor para estar actualizando de manera periodica unas imagenes de una estacion meteorológica saludos ojala alguien pueda ayudarme

Upload de Archivos con Flash » unijimpe
Publicado: 24/10/2007 10:56 am

[...] Hasta este punto se ha hecho el envío al servidor, pero nos hace falta un script en el servidor que se encargue de recibir y guardar este archivo. En nuestro caso utilizaremos PHP, para ello nos basaremos en el ejemplo Upload de Archivos con PHP. [...]

Gustavo
Publicado: 01/11/2007 11:59 pm

Hola el codigo funciona de maravilla con la unica restriccion de que solo archivos menores de los 2mb se pueden subir, hay alguna forma de corregir esa limitacion para que acepte archivos de mayor peso

Jorge
Publicado: 05/11/2007 3:48 am

Hola el codigo a mi tambien me funciona muy bien, ahora lo que quiero es subir muchas imagenes y mostrarlas me podrias ayudar de antemano gracias….

Jorge Alvarez
Publicado: 06/11/2007 2:54 am

Hola! yo si piedo subir archivos, el problema es que quiero que el usuario presione un boton de aceptar para confirmar la sobreescritura de un archivo, alguien tiene una idea.
Saludos

cesar
Publicado: 08/11/2007 3:41 am

Una pregunta sencilla: la carpeta “files” debe estar en la misma carpeta donde está el archivo upload o debe estár en el raíz del sitio.

Gracias.

Pablo
Publicado: 08/11/2007 3:42 pm

Hola:

Tengo la siguiente consulta.
Para proteger los archivos cree una carpeta “archivos” en la raiz del sitio, al mismo nivel de www o public_html y con permiso 777.

Mi pregunta es como puedo mostrar los archivos de esta carpeta y hacer un link a cada uno de ellos.

Jhonatan
Publicado: 29/11/2007 10:21 am

Hola me encanto el tutorial y lo estoy usando bueno para empezar soy un estudiante de turismo y quiero compartir mis imágenes con mis amigos y para que ellos también suban y es perfecto pero yo quiero que se muestre en imágenes en miniatura y me salio bien puedes verlo en el siguiere link:
http://www.konchukos.com/cenfo/upload.php
mi consulta es que tengo que hacer para que me muestre imágenes en miniatura sin tener que cargarme todo el archivo por que es pesado mi idea es llegar a, cuando termine de cargar la imagen que me muestre una imagen en miniatura pero no el archivo completo sino otra imagen que PHP se encargue de crear una imagen pequeño y me muestre luego cuando hago click enzima de la imagen pequeño me muestre la imagen original en tamaño original en este caso grande, Gracias por tu ayuda

Mike
Publicado: 30/11/2007 12:07 pm

Solo una pregunta. ¿Donde pongo la carpeta file?
Gracias

Mike
Publicado: 30/11/2007 12:13 pm

Gracias!!!!, ya me funciono!

Danita
Publicado: 07/12/2007 9:07 pm

Hola unijimpe Felicidades me ha servido de mucho tu informacion
Me podrias ayudar resulta que tengo el siguiente caso tengo mi formulario donde se capturan incidentes y se suben imagenes pero tenia la idea de poner como prefijo de la imagen el numero de registro asi como tu pones para evitar que se dupliquen me podrias ayudar con la sintaxis.te lo agradezco

Jaime
Publicado: 19/12/2007 9:46 am

Muy buen aporte.. se agradece.

Elec7ro
Publicado: 27/12/2007 4:25 am

Muy bueno, una pregunta, lo codeaste vos?

Otra, al subir me tira 500 server internel error ya le di 777 las carpetas.

te dejo la direde dodne esta subido para que veas…

http://mierdamierda.org/upload1/

saludos

leo
Publicado: 30/12/2007 3:27 am

Hola, como le hago para evitar que se muestren tantos links, solo quisiera que se mostrara uno y al al subir un archivo cambie pero que solo sea un link. gracias

Pablo
Publicado: 02/01/2008 4:39 pm

Hola yo quiero elegir el destino de adonde copiar el archivo en el servidor y hice este codigo:

[Seleccione el destino]
LEGISLACION/MUNICIPALES/COMUNICACIONES/Año 2007/
LEGISLACION/MUNICIPALES/DECRETOS/Año 2007/
LEGISLACION/c/

y el archivo php correspondiente:

$directorio = $_POST['destino']; //directorio donde va a ir el archivo

if (move_uploaded_file($_FILES['archivo_usuario']['tmp_name'], $directorio . $_FILES['archivo_usuario']['name']))
{echo “El archivo fue subido con éxito.”;
}
else
{
echo “Error al intentar subir el archivo.”;
}

el problema es que no me envia la variable destino como quisiera por lo que no puede copiar el archivo.

Saludos

Pablo
Publicado: 02/01/2008 4:43 pm

Bueno no se me copio lo del codigo html, pero puedo decirles que es un codigo comun de subida con la diferencia que ademas tiene un formulario tipo combobox que tiene las direcciones disponibles para subir el archivo y es enviada por POST en una variable que se llama ‘destino’.

Cesar
Publicado: 04/01/2008 12:57 pm

Mis saludos ante todo.
Desearía saber porque despues de subir todos los archivos al servidor al presionar el botón UploadFile me sale éste mensaje: No input file specified.
Ageadecería su pronta respuesta.

Saludos.

Juan Diaz
Publicado: 22/01/2008 10:42 pm

Hermano excelente tu codigo pero solo tengo una duda… como puedo hacer para que al lado del nombre del archivo me salga una opcion de eliminar… para eliminar ese archivo(en mi caso lo estoy usando para fotos pero use el mismo de archivos y me funciona al pelooo espeor tu pronta repsuesta gracias)

Derleth
Publicado: 04/02/2008 1:03 pm

siiiiiiii queremos la opcion ELIMINAR la foto al lado del nombre :D seria muy amable de tu parte hacer ese cambio :D

Rafa
Publicado: 11/02/2008 7:00 pm

Muy buen tutorial pero el problema que tengo es cuando lo subo al servidor me aparece el siguiente warning:

Warning: copy(files/9ffa26_maloSmall.jpg) [function.copy]: failed to open stream: Permission denied in /usr/local/psa/home/vhosts/mezie4.com/httpdocs/UPLOAD/uploadfiles.php on line 13

este es la liga de mi pagina donde estoy haciendola prueba:

http://www.mezie4.com/UPLOAD/uploadfiles.php

Saludos

Rafa
Publicado: 12/02/2008 11:51 am

Saludos

Tengo una duda sobre que version de php estas tabajando este upload.

Gracias

paulo riquelme
Publicado: 24/02/2008 12:43 pm

Felicitaciones por el blog y por tu buena disposicion. He recorrido varios foros consultando esto y todos me mandan a freir huevos.
baje el ejemplo qu epusiste y funciona perfectamente. al fin puedo subir archivos al host.
Pero mi duda es similar a las de piccolox. Ya que yo quisiera adjuntar una imagen al correo que me llega de un formulario de contacto.
He leido varios asuintos similares y segun investigue hay un scrip cgi para hacerlo llamado totmail.
Pero quisiera saber si a traves d ephp se pueden enviar formularios con imagenes adjuntas a un correo especifico.

( lei un tutorial de phpmailer que publicaste pero la verdad ese si que no lo pude hacer funcionar)

espero que puedas ayudarme. muchas gracias

unijimpe
Publicado: 24/02/2008 3:51 pm

Hola Paulo, en realidad lo que estas buscando es enviar email con archivos adjuntos (en tu caso imagen), para ello puedes leer:
http://blog.unijimpe.net/enviar-email-con-adjuntos/

Upload de archivos > 2Mb (PHP) » unijimpe
Publicado: 29/02/2008 12:43 am

[...] una de las tareas más comunes en el desarrollo de aplicaciones con PHP del cual hemos comentado en Upload de Archivos con PHP, normalmente los archivos que suben son como máximo 2Mb. Pero hay problemas cuando se quieren [...]

Upload de archivos > 2Mb (PHP) « Think Free
Publicado: 29/02/2008 5:00 am

[...] una de las tareas más comunes en el desarrollo de aplicaciones con PHP del cual hemos comentado en Upload de Archivos con PHP, normalmente los archivos que suben son como máximo 2Mb. Pero hay problemas cuando se quieren [...]

emanuel
Publicado: 05/03/2008 5:22 pm

hola quetal tengo un problema
necesito que cuando suba la imagen a la carpeta file se guarde (todas las imagenes) con un mismo nombre o consecutivos ejemplo foto1,foto2,ect

leonardo
Publicado: 05/03/2008 7:57 pm

Exelente tutorial espero que sigas mostrando de esta manera tan detallada.
Necesito hacer lo mismo para subir directamente a la BD y luego si necesito mostrar alguna imagen lo traigo con un select.
Xfavor necesito su ayuda ya que he buscado mucho pro no he encontrado la solucion a este problema.

unijimpe
Publicado: 06/03/2008 12:19 am

Lo recomendable es guardar los archivos en una determinada carpeta y en la base de datos se guarda la ruta donde se encuentra el archivo. Esto se hace para no recargar la base de datos y de paso te evitas problemas de codificación.

emanuel
Publicado: 06/03/2008 10:46 am

hola como ago para que cuando suba la imagen se publique en una pagina

Vic
Publicado: 06/03/2008 2:28 pm

hola.
Soy nuevo en esto, descargue los archivos, el archivo upload lo guarde como html para poder verlo, al darle subir archivo me aparece el codigo de la pagina y no sube nada, le tengo que hacer algo al codigo antes de verlo en el explorador o necesito algun software, podrian ayudarme.
gracias

Cusnigua
Publicado: 07/03/2008 9:08 am

Hola
Mi pregunta esta en relación a otro tema casi parecido:
Resulta que mi proveedor me ha bloqueado para no poder subri fotos ni bajar ningun archivo de internet como lo desbloqueo pues necesito estas funciones urgentemente.
Gracias

leonardo
Publicado: 10/03/2008 3:41 pm

Nueva pregunta y como podria hacer esto???
al subir los archivos como guardo la ruta del mismo en la Base de Datos???, para luego cuando sea necesario llamar al archivo para mostrarlo en una pagina.
Favor si podrian ayudarme con este tema o poner un post sobre esto ya que es muy importante. Gracias por la respuesta Anterior!!!

eduardo
Publicado: 20/03/2008 2:37 am

Genial!! he probado este metodo y la verdad que me funcionó a la primera, muchas gracias por el aporte en serio!

Saludos!

carlos
Publicado: 11/04/2008 7:50 am

Un grande, este es el mejor tutorial, en ninguno lo entendi mejor que en este. GRACIAS!!!!
Carlos
URUGUAY

Joseph
Publicado: 19/04/2008 4:43 pm

Hola… excelente el codigo…. lo probe y me funciono a la primera vez … solo tengo una pregunta… Todo me funciona de lo mejor, subos los archivos, lo puedo ver , pero a la hora de irme a la carpera flies no los puedo ver ? porque es esto. gracias por la ayuda

PD el codigo del borrar archivo seria genial…

Joseph
Publicado: 19/04/2008 4:47 pm

Listo… ya lo arregle…

Pero si…. el codigo para borrar estaria genial

Gracias

orlando
Publicado: 27/04/2008 6:06 pm

Excellente pero mira como hago para que solamente sube aplicacion osea me explico archivos .rar .zip .exe .gz ???

eduardo
Publicado: 03/05/2008 8:18 pm

Hola amigos!! gusto en saludarlos primero que nada excelente tutorial unijimpe.

Disculpen lo que pasa es que quisiera saber como hacerle de que si por ejemplo hay una imagen con el mismo nombre en servidor, que me pregunte si deseso sobreescribirlo y si le doy si que lo realize

gracias estare en espera de alguna ayuda

Leandro
Publicado: 14/05/2008 12:21 pm

Hola, muy bueno el tutorial.
Yo quisiera saber como hacer para que una imagen que suba un navegante, cambie la pagina.
Porque quiero hacer que se pueda subir una imagen para realizar una zapatilla personalizada y que vea como quedará aproximadamente.
Gracias

karla
Publicado: 19/05/2008 1:18 pm

hola, muy buen tutorial.
Yo quisiera saber por que cuando subo un archivo y lo intento abrir me dice que esta dañado

willmhope1
Publicado: 22/05/2008 12:04 am

Saludos amigo!
Ya he podido cargar imagenes en una carpeta para tal fin.. pero como hago para vincular esta imagen con un registro de la base de datos hecha en Mysql? Mi base de datos ya tiene un campo llamado FOTO pero como hago para llenar esta campo con la dirección de la carpeta IMAGEN donde estan almacenadas las imagenes de cada registro de mi base de datos? Por mas que le doy vueltas no consigo relacionarlo…
Me podrias ayudar!
Muy agradecido!

nicolas
Publicado: 27/05/2008 10:17 pm

un rapido resumen …

logre enviar fotos a carpeta dejando grabado el nombre de foto en DB…resumen

$ruta=’ficherosSubido/’;//carpeta que tiene las fotos

despues hago una colsulta a DB extrallendo el nombre de la foto.

no logro mostrar la foto. ni con fopen($ruta,”modo”);

“a la ruta le añado el nombre de la foto”, mediante :

$ruta = ‘ficherosSubidos/’;
echo $ruta.$nombre;

muestrala ruta correcta pero no sale la foto?? !!!

help pliss

NIko
Publicado: 29/05/2008 7:50 am

Muy buen sitio esta todo super claro y los comentarios son bastante buenos saludos desde Chile !!!!

Alejandro
Publicado: 04/06/2008 5:51 am

Hola esta herramienta esta muy buena y me sirve mucho, tembien me funciona a la perfeccion.

Pero mi consulta es la siguiente:

Como coloco una barra de progreso para sabes cuanto tarda en subir el archivo??

Iran
Publicado: 26/06/2008 3:09 am

Hago todo pero cuando pinto
echo “arcvhivo”.$archivo;
echo “tmp_name”.$HTTP_POST_FILES['archivo']['tmp_name'];

el archivo si que lo trae, pero el tpm_name me llega en blanco.

Alguien me puede ayudar?

Santy
Publicado: 23/07/2008 4:10 am

Hola queria comentar que quiero hacer una página para subir imagenes, ya tengo creado el formulario y el archivo php de subida, pero me gustaria poner una miniatura de imagen para que se viera la imagen en tamaño chico que se quiere enviar. Muchas gracias

Santy
Publicado: 23/07/2008 4:11 am

Por cierto, se me olvidó, dar la enhorabuena por la página y el tutorial.

Ivonne
Publicado: 31/07/2008 8:50 am

Gracias por el tutorial, era lo que estaba buscando desde hacia mucho tiempo.

Hope
Publicado: 05/08/2008 2:06 pm

Esta bueno el tutorial, lo que te queria preguntar unijimpe, es que si quiere darle un nombre a esa imagen, como hago, por ejeplo: muestra.jpg, y quiero llamarlo en la bd: nombre: muestra, y la ruta:imagenes/muestra.jpg. como le pongo la variable nombre. gracias

catalina
Publicado: 04/09/2008 11:01 am

gracias, un excelente tutorial me sirvio muchisisisisimo.

kid power
Publicado: 08/09/2008 8:33 am

hola muy bueno el tutorial, pero te querio preguntar como puedo descargar esos mismos archivos, para todos los usuarios q tengo registrados.

jose
Publicado: 12/09/2008 2:09 pm

hola me gustaria sber con el mismo ejemplo como podria crear una subcarpeta en el directorio files y ke en la subcarpeta se guarden los archivos

Diego
Publicado: 23/09/2008 10:32 am

Hola!!!, muy buen código pero tengo una consulta, no sé que pasa pero trato de subir archivos mayores a 50 MB y aparece el error 500 – internal server error o si no es eso aparece que no puede mostrar la página. El php ini está bien, le puesto estos valores:

post_max_size = 90M
upload_max_filesize = 90M
memory_limit = 90M
max_execution_time = 5000000000

(el max execution time lo he probado con otros valores y siempre es lo mismo).

Solamente he podido subir dos veces un archivo de 62 MB y no seguidas, osea una hace un par de día y la otra hoy, pero los archivos menores a 50 MB si han subido, no sé a que se deba esto, me está quemando el cerebro!!!!!!!!……Ahhh otra cosa, después de subir el archivo de 62 MB, no he podido subir ningún otro archivo pesado, ni siquiera de 20 MB, mas pequeños si he podido……ESto está complicado!!!! help me!!!

Diego
Publicado: 23/09/2008 10:36 am

ahhh otra cosa!!, quisiera saber como agregarle una barra de progreso, ya que he visto algunos ejemplos y es un poco complicado adaptar los códigos.

Carla
Publicado: 11/10/2008 11:37 am

Hola! esto esta bueno,… pero necesito subir un archivo zip al servidor para luego descargarlo a traves de un link. Mi base de datos se llama “modulozip”, la tabla “zips” y las columnas son “nom_archivo”,”direccion”, “archivo”. Como lo hago?

Nico
Publicado: 14/10/2008 1:22 pm

hola me funciona de 10 pero tengo una duda ¿como hago para q los usuarios puedan ponerle un nombre?
para q quede así:
numeroalelatorio_nombrequeledioelusuario.
y tambien para q el usuario vea los archivos q cargo y tenga un buscador para ver los demas archivos q cargaron otros usuarios.

Boris Elass
Publicado: 26/10/2008 10:39 pm

Muy útil su código, me salvo la vida, lo que sucede es que estoy haciendo una pagina de publicar archivos en línea y gracias a su codigo pude subir archivos y tenerlos siempre visible al administrador…

les doy un 10

fabian
Publicado: 05/11/2008 7:59 pm

hola alguien me puede AYUDAR necesito subir archivos .txt a un servidor porfavor se los agradeceria enormemente

fabian
Publicado: 05/11/2008 8:01 pm

despues de subir cada archivo se debera ejecutar una funcion ke realize en php para leer su contenido e insertarlo en una BD

Jose Martin
Publicado: 12/11/2008 4:47 pm

Muchas Gracias estuve buscando un script que me ayudara con esto de subir archivos, yo utilizaba el $HTTP_POST_FILES, pero creo que no funcionaba correctamente. una observacion, hay que tener deshabilitada el register_globals en el php.ini, para que no cree problemas de seguridad.

fabiola
Publicado: 12/11/2008 9:25 pm

hola… tu codigo funciono a la perfeccion puesto que si sube los archivos y todo a la carpeta solo que ahora tengo un pequeño imprevisto… lo que necesito es dar de alta un registro y al mismo tiempo subirlo al servidor… y que este registro se guarde en una b.d al igual que el nombre del archivo que subi… pero al momento de dar de alta no me guarda ni siquiera el registro en la b.d y mucho menos sube el archivo…. espero puedas ayudarme… gracias

paola
Publicado: 18/11/2008 11:24 pm

Hola..quiero el código para que se permita subir archivos ya sea xls, doc, csv, etc; que no sean imagenes.
Gracias..

Alma
Publicado: 20/11/2008 12:11 pm

Muy buena explicación, muchas gracias por tu aportacion

GARI
Publicado: 23/11/2008 12:42 pm

HOLA.. necesito que ademas de enviar la variable del archivo. pueda enviar las variable del formulario. no me reconose las demas..gracias necesito su ayuda

unijimpe
Publicado: 23/11/2008 1:42 pm

Para recoger las variables del formulario lo puedes hacer desde la variable general $_POST, es decir si tienes un campo de texto que se llama nombre, entonces lo puedes recoger en PHP con: $_POST["nombre"]

Carles
Publicado: 27/11/2008 6:12 pm

Los que quieren guardar sus archivos en una base de datos, no debeis usar este codigo tal cual. Tenes que usar un par de secuencias MySQL.

Por otro lado, este no es el unico modo de hacerlo. Se puede usar la funcion move_upload_files().

Leer en la pagina de php y de mysql.

cesar
Publicado: 22/12/2008 10:17 am

hola, men, el codigo esta de pelos y la explicacion me encanto, grracias por las lieneas

Pharmac
Publicado: 29/12/2008 10:40 am

Gracias por el tutorial y por la dedicación al blog, justo lo q necesitaba,, de fabula.

Mark Brunell
Publicado: 05/01/2009 1:36 pm

Excelente aporte, sencillo y funcional felicidades!

Rogelio Hernandez
Publicado: 09/01/2009 11:46 pm

Excelente aporte, me saco de un apuro y funciona a la perfección, muchas gracias

Ricardo
Publicado: 14/01/2009 11:27 am

excelente tutorialmuy practico y facil de seguir gracias por compartir tus conocimientos.

Alan García
Publicado: 20/01/2009 5:03 am

Estimado Unijimpe, tengo un problema, q persiste hasta en el código q has publicado, El problema es que solo puedo hacer UPLOAD a archivos .txt …. ¿A que se debe ???????????, porq solo .txt, hay algún parámetro q modificar en el php.ini ????? … necesito q me ayudes … no se q pasa, deberia de cargar cualquier tipo de fichero … ´mi mail es: agp_fox@hotmail.com, Un Abrazo a la distancia, BUEN BLOG … COMO TÚ MUY POCOS…. FELICITACIONES

forix
Publicado: 20/01/2009 10:56 am

Gracias mil gracias mil gracias

funciona de maravilla..

gracias

moisesino
Publicado: 22/01/2009 12:26 pm

como se hace para borrar los archv. subidos???????? no tengo idea puedes ayudarme gracias.

Ivan
Publicado: 22/01/2009 6:05 pm

Excelente, ya lo aplique a lo que necesito del portal y me quedo excelente, tiene un detalle, cuando se le da refresh (F5) vuelve a hacer el envio, y habría la posibilidad de que no se pudiera volver a subir el mismo archivo?

Alex
Publicado: 23/01/2009 12:04 pm

Hola, tengo un problema, me da este error al intentar subir el archivo.
La carpeta a la que lo intento subir “documentos/” tiene todos los permisos y las carpetas de las que cuelga igual, porque puede ser esto? que tengo mal?

Please ayudaaaaaaaa

Warning: move_uploaded_file(documentos/) [function.move-uploaded-file]: failed to open stream: Permission denied in C:\Inetpub\vhosts\fundela.info\httpdocs\subeNoticia.php on line 35

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move ‘C:\WINDOWS\Temp\php50B3.tmp’ to ‘documentos/’ in C:\Inetpub\vhosts\fundela.info\httpdocs\subeNoticia.php on line 35

Alan García
Publicado: 23/01/2009 1:05 pm

Iván …….. para evitar q te vulva a cargar, debes usar sentencias condicionales, primer haces una búsqueda al directorio y si lo encuentra, q alerte al usuario de otro archivo de mismo nombre …
AUNQUE … no veo el problema, pues la función “copy” o “move” de php, sobreescribe el archivo existente …
Y aviso q ya solucioné mi problema de que solo cargaba archivos *.txt, pues el parámetro MAX_FILE_SIZE … se expresa en bytes, y solo le había puesto 10000, jajaja q tonto… un saludo … y repito .. q buen tutorial !!!

Zibian Duh Nor
Publicado: 27/01/2009 1:19 am

Aca hay un Script que jala bien
http://tech4u.rrwebsolution.com

Liliana
Publicado: 11/02/2009 1:14 pm

Hola, tengo un formulario con dos input uno para cargar una foto y otro para cargar un animacion. Como se puede modificar el archivo del upload para que los cargue al tiempo?
Gracias

emanuel
Publicado: 21/02/2009 3:07 am

Muy bueno el codigo, lo estaria bueno que cabiarle es que te muestre el ultimo archivo subido 1ro, por que con el random aparecen en cualquier lado

Salu2

ricardo
Publicado: 03/03/2009 8:31 pm

como hago para que funcione con archivos mp3?

Veron
Publicado: 06/03/2009 1:21 am

Cómo puedo hacer para mandar a la vez correo con datos e imagenes desde el lado del cliente?

Ricardo
Publicado: 20/03/2009 4:56 pm

hola como hago para que la imagen que subi, se me muestre en alguna página de mi sitio web, alguien me puede ayudar porfavor, me pueden enviar una respuesta a guardado_riclor@hotmail.com

Jose Luis
Publicado: 27/03/2009 9:10 pm

exelente tu scrip me funciona ok, pero necesito que cuando el archivo suba a la carpera file no le agrege los caracrteres aleatorios sino que conserve el nombre original del archivo

garcias

Jose Luis
Publicado: 27/03/2009 9:11 pm

mi correo es solucion_d@hotmail.com bracias


[...] que estar previamente dentro del servidor web. Para subir los vídeos a vuestro servidor web hay muchísimos script que podéis [...]

joni
Publicado: 03/04/2009 5:17 pm

Como siempre los cientos de codigos que trate de usar tu script en PHP para subir archivos tampoco funciona

Edith
Publicado: 06/04/2009 1:18 pm

como puedo hacerle para que suba videos?

lokito
Publicado: 09/04/2009 10:17 am

como puedo hacerlo para que subas imagenes y nada mas

alfredo
Publicado: 09/04/2009 4:22 pm

disculpen pero yo tambien estoy entrando en este cambio de programacion, tengo 2 dudas primero entiendo como subir un arhchivo a mi server pero, si deseo enlazarlo o como explicar algun otro campo que lo relacione para posterior con este campo de texto recuperar el archivo guardado para que el usuario lo pueda ver, gracias espero alguien me ayude

roberto
Publicado: 15/04/2009 1:21 pm

muchas gracias me sirvio muchisimo su codigo y les puedo pasar un tip es modificar el archivo directo en “root”

etc/php.ini

modificar el valor de uploadmaxfilezise a lo que deseen yo lo tengo en 200 MB

lawren
Publicado: 22/04/2009 12:55 pm

muchas gracias por ese codigo pero tengo una pregunta si quisiera ponerlo a que solo recibiera archivos de tipo xls como hago la condicion

Neo Lopez
Publicado: 23/04/2009 1:33 pm

Qué código tengo que escribir para que después de que el archivo se suba aparezca una web o otra directamente, en función de si el archivo se sube correctamente o no.
Es decir, imaginemos que subimos una foto y se subió bien pues que aparezca una web directamente (una web, no un mensaje escrito) web que después yo editaría para que fuera como yo quisiera. Y en el caso de que el archivo no se subiese correctamente que apareciera otra web distinta. (vamos que te redirija a una dirección web u otra)
Espero respuesta, muchas gracias.
Neo López

robert
Publicado: 27/04/2009 11:44 am

Hola Muy buena tu aporte se te agradece por le explicacion y a la vez darnos la oportunidad de poder practicar mediante tu codigo bueno aora mi problema es como puedo borrar los archivos necesito una idea o sino darme un ejemplo pa ver su codigo y poder hacerlo espero antemano que me puedas ayudar y facilitar esata duda que tengo muchas gracias
Roberth

asdf
Publicado: 11/05/2009 5:40 pm

muchas gracias, muy util :)

Juank
Publicado: 14/05/2009 2:02 pm

Tengo un formulario con los siguientes campos identificacion, nombres, apellidos y la opcion de cargar la foto, cuando cargo la foto los campos anteriormente nombrados se borran. Como hago para que cuando cargue la foto no se me borren los campos…

Israel
Publicado: 26/05/2009 10:51 am

Este tutorial me ha gustado mucho… pero tengo una complicacion mas, alguien me podria ayudar para hacer este mismo proceso, pero para subir el archivo a una base Mysql???

de antemano muchas gracias

unijimpe
Publicado: 26/05/2009 9:49 pm

Lo que puedes hacer es hacer upload del archivo como se muestra en este ejemplo y en tu base de datos MySQL solo guardar el nombre del archivo subido, ya luego cuando quieres mostrar el archivo haces la consulta para extraer el nombre del archivo guardado en MySQL y luego mostrar un enlace para ver el archivo.

marcos
Publicado: 27/05/2009 10:12 pm

como sería el código para subir archivos mp3?
desde ya muchas gracias

Juan
Publicado: 28/05/2009 9:10 am

Hola tengo el siguiente problema:

<?php
$status = “”;
if ($_POST["action"] == “upload”) {
// obtenemos los datos del archivo
$tamano = $_FILES["grabacion"]['size'];
$tipo = $_FILES["grabacion"]['type'];
$archivo = $_FILES["grabacion"]['name'];
$prefijo = $_POST["id_solicitud"].”_”.$_POST["fecha_evento"].”_”.$_POST["id_cliente"];

if ($archivo != “”) {
// guardamos el archivo a la carpeta files
$arrfile = split(“.”, $archivo);
$vext = $arrfile[1];
$destino = “files/”.$prefijo.”.”.$vext;
$nombrearchivo = $prefijo.”.”.$vext;
if (copy($_FILES['grabacion']['tmp_name'],$destino)) {
$status = “Archivo subido: “.$archivo.”“;
include(“conecta.php”);
$id_solicitud=$_POST['id_solicitud'];
$consulta=’update solicitudes_det set nombregrabacion=”‘.$nombrearchivo.’”, fecha_modificacion=now(), status=”enviado” where id_solicitud=”‘.$id_solicitud.’”‘;
$resultado=mysql_query($consulta,$conexion)or die(mysql_error());
} else {
$status = “Error al subir el archivo”;
}
} else {
$status = “Error al subir archivo”;
}
}
?>

Este codigo me funciona perfectamente, pero al intentar extraer del archivo la extencion de este, no me la extrae y me guarda el archivo sin extencion, incluso me lo guarda con el punto perod e extencion nada, ayuda porfavor

mlaura
Publicado: 14/06/2009 8:41 pm

Hola: Te felicito por el tutorial, lo probé y funciona a la perfección. He leido todos los comentarios pero no encontre una respuesta a mi siguiente inquietud: Como hago para que al guardarlos en la carpeta files renombre los archivos de forma consecutiva, ejemplo:image1, image2, image3…Y se puede predeterminar la cantidad de archivos a subir? DEsde ya se agradece cualquier info que me permita aclarar mi duda. Saludos y exitos

Eli
Publicado: 18/06/2009 3:13 pm

Hola, tengo una dudita, este código funciona si lo que necesito es que desde un cliente suban archivos a mi servidor?. ya lo he ensayado pero desde localhost, pero lo que no sé es si al intentarlo hacia un servidor que está en una red diferente funcione… :)Gracias.

Daster
Publicado: 21/06/2009 1:22 pm

estoy tratando de lograr que los usuarios de una web suban sus imagenes por php utilice el form de arriba y funciona pero no se como poner las restricciones solo quiero que suban imagenes utilice el codigo para imagenes que esta abajo pero me da error :S me podrias ayudar?

lauramiracle
Publicado: 26/06/2009 1:28 pm

GRACIAS!
era justamente lo que quería hacer, llevo días siguiendo los códigos de gente por los foros y nadaaa…me daba error!
pero por fin encontré esto, y modificando unas cositas, lo logré..
lo agradezco MUCHO!

jose luis
Publicado: 30/06/2009 9:49 am

A mi me ha servido mucho, laa unica duda que tengo es que me gustaria que una vez se subiera el archivo y diera la confirmacion , se cerrara la ventana del php volviendo a la web en la que esta el boton de subirda de archivos.

federico
Publicado: 02/07/2009 2:56 pm

hola yo les recomiedo que los archivos o fotos que tratan de subir al rervidor no los guarden en una base de tados, por que eso ase muy lento el motor del mysql, lo mas recomendable es guerada la imagen o archivo en una carpeta dentro del servidos y solo guardar la direccion del archivo en una tabla eso aria mas fecil la extraccion del archivo al momento de visualizarlo

Rebeca
Publicado: 09/07/2009 10:41 am

Como puedo usar el , para solo leer la ruta de un archivo, que no quiero cargarlo simplemente leer la ruta de su posicion en el disco del cliente, sin utilizar en la cabecera del formulario enctype=”multipart/form-data”.

felipe meza
Publicado: 14/07/2009 7:42 am

como hago para eliminar los archivos subidos mediante upload

felipe meza
Publicado: 14/07/2009 7:43 am

como hago para que me muestre los achivos subido y allado un cheatbox para seleccionarlos y borrar los seleccionados

Jacqui
Publicado: 14/07/2009 10:01 pm

Muchas gracias! me funciono ala perfección, nada mas no hay que olvidar darle los permisos a tu servido para subir los archivos que quieres :)

Berto
Publicado: 15/07/2009 4:37 pm

Hola!
Necesito que me ayudes con Este tema.
tengo un hosting Fpt ilimitado y Quiero Hacer una Subida De Archivos de 500mb y bueno, no Entiendo la Esplicasion De El Php y Quisiera que me Ayudes a Editar bien El php.

Contactame por mi mail…

Saludos…

silver
Publicado: 29/07/2009 1:09 pm

mmmmmm muy bueno el post pero engo una duda como hago para que estos mismos archivos se puedan descargar?

andrews tamayo
Publicado: 31/07/2009 11:31 am

hola muy bueno el tuto pero tengo un problema al cargar el archivo, yo estoy trabajando sobre mi propio servidor en linux y al intentar cargar el archivo este es el error q me aparece:

Warning: copy(adjuntosed0cae_archivo nuevo) [function.copy]: failed to open stream: Permission denied.

la carpeta donde intento llevar el archivo es adjuntos y el archivo a subir es llamado ‘archivo nuevo’ ya le he dado permisos a la carpeta adjuntos pero nada. lo he hecho asi:
/var/www# chmod +rwx adjuntos

y cuando aplico el comana ls-l para mirar sus permisos esto es lo q aparece
drwxrwxrwx 2 afelipet123 afelipet123 4096 jul 30 14:47 adjuntos

por favor ayuda!!!!

jaime
Publicado: 04/08/2009 7:04 pm

hola…necesito algo de ayuda..alguien podria decirme como eliminar el archivo despues de de que se haya subido…

gracias

johana
Publicado: 04/08/2009 11:04 pm

hola, tengo una duda, no me esta guardando la imagen en ninguna parte, donde se supone que la deberia guardar? en la carpeta files que he creado previamente dentro de la carpeta “www” del servidor wamp me aparece vacia, si alguien me puede ayudar le estare muy agradecida, muchas gracias.

Repositorio de archivos en PHP - Foros de CHW
Publicado: 28/08/2009 4:51 am

[...] los usuario de mi pagina web puedan subir archivos al servidor. El ejemplo lo saque de una pagina (Upload de Archivos con PHP), que por lo cierto esta muy buena…. El ejemplo es mas o menos asi…. <?php $status = [...]

Felipe R
Publicado: 21/09/2009 9:28 am

Gracias funciono a la perfeccion

BESTMASTER
Publicado: 29/09/2009 12:19 pm

unijimpe, quisiera preguntarte algo, necesitaba enviar por internet algunos archivos adjuntos a través de un aplicativo, aparentemente subieron correctamente pero al finalizar el proceso tenia q darle en confirmar par terminar y al darle me salio el siguiente error.

* An error occurred during local report processing. o The definition of the report ‘Main Report’ is invalid. + An unexpected error occurred while compiling expressions. Native compiler return value: [BC2001] no se pudo encontrar el archivo ‘C:\WINDOWS\TEMP\knscavrr.0.vb ‘.

quisiera saber si ese error afecta los archivos q adjunte o si solo es un error del reporte que me deberia salir como constancia de que subi los archivos correctamente.

Me preocupa porque al darle en confirmar ya no pude volver a entrar al aplicativo.

agradezco tu atencion y colaboracion

Tomas
Publicado: 01/10/2009 9:21 am

Que tal como andas :P Te hago una pregunta, ¿ no es peligroso darle permisos 777 a un directorio publico? O sea.. no podría cualquier persona escribir en ese caso? Gracias!

Tomas
Publicado: 01/10/2009 9:23 am

Recomiendo leer también este otro artículo.
http://www.teayudo.es/wordpress-y-la-seguridad-de-la-carpeta-upload-peligros-de-chmod-777/

Saludos.
Tomas!

Julian
Publicado: 25/10/2009 3:27 am

Hola que tal? tengo un dilema en php. Me podrías indicar por favor como puedo subir texto e imagen pero solo desde un admin con contra a la que solo un usuario registrado pueda ingresar? Y que estos archivos subieran a un link o apartado especifico de la página? Te lo agradecería mucho, al menos que me puedas sacar de esa duda, haber si se puede por php o mysql. Gracias por tu atención

crmauro
Publicado: 31/10/2009 9:37 pm

Muy buen tutorial excelente todo corre ok.. gracias por el buen aporte

Ioriyagami
Publicado: 12/11/2009 11:00 pm

Muy buen codigo y si funciona, bueno marcaba un error pero era porke no estaba la carpeta files :P

Gracias!!!

blabla
Publicado: 28/11/2009 9:45 am

Muchas gracias esto me ha sido super util, me gustaria saber como puedo hacer para que al subir el archivo salga un link para que se pueda descargar
Gracias

Gabriel
Publicado: 09/12/2009 9:22 am

<?php

$dir = "./contenido/";
$directorio=opendir($dir);
echo "Documentos Listados“;
echo “”;
while ($archivo = readdir($directorio)){
if($archivo==’.’ or $archivo==’..’){
echo “”;
}else {
$enlace = $dir.$archivo;

echo “”;
echo “$archivo“;

echo “”;

}
}
closedir($directorio);
?>

Asi listo los archivos que subo al servidor, yo lo uso en una intranet de la escuela donde trabajo.

Juanuco
Publicado: 16/12/2009 9:51 am

como lo hago si al momento de subir el archivo tambien quiero agregar un campo de texto con el nombre y la categoria y que al momento de yo querer listar los archivos en una pagina me muestre los de una categoria y en otra pagina los de otra categoria que no me muestre todos los archivos sino que yo pueda restingirlo

Cubaneate
Publicado: 21/01/2010 11:44 am

Para subir videos seria asi , tambien le agregue el echo”$status” asi imprime la respuesta si subio bien o no

<?

$status = "";

if ($_POST["action"] == "upload") {

// obtenemos los datos del archivo

$tamano = $_FILES["archivo"]['size'];

$tipo = $_FILES["archivo"]['type'];

$archivo = $_FILES["archivo"]['name'];

$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {

// guardamos el archivo a la carpeta files

$destino = "videos/".$prefijo."_".$archivo;

if (copy($_FILES['archivo']['tmp_name'],$destino)) {

$status = "Archivo subido: “.$archivo.”“;
echo “$status”;

} else {

$status = “Error al subir el archivo”;
echo “$status”;

}

} else {

$status = “Error al subir archivo”;

}

}

?>

Massitio
Publicado: 21/01/2010 12:08 pm

Este es el codigo para subir el video y que guarde el nombre en una base de datos

archivo: formulario.php

Massitio.com – Freelance Internet Service

archivo: upload.php

Massitio.com – Freelance Internet Service

<?
$status = "";

if ($_POST["action"] == "upload") {

// obtenemos los datos del archivo

$tamano = $_FILES["archivo"]['size'];

$tipo = $_FILES["archivo"]['type'];

$archivo = $_FILES["archivo"]['name'];

$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {

// guardamos el archivo a la carpeta files

$destino = "videos/".$prefijo."_".$archivo;

if (copy($_FILES['archivo']['tmp_name'],$destino)) {

$status = "Archivo subido: “.$archivo.”“;
echo “$status”;
//Conexion con la base
mysql_connect(“localhost”,”usuario_bd”,”contraseña_bd”);

//selección de la base de datos con la que vamos a trabajar
mysql_select_db(“base_de_dato”);

//Ejecucion de la sentencia SQL
mysql_query(“insert into videos (archivo) values (‘$archivo’)”);
echo “registro guardado en la base de datos”;

} else {

$status = “Error al subir el archivo”;
echo “$status”;
}

} else {
$status = “Error al subir archivo”;
}
}
?>

Massitio
Publicado: 21/01/2010 12:09 pm

Este es el codigo para subir el video y que guarde el nombre en una base de datos

archivo: formulario.php

Massitio.com – Freelance Internet Service

JoseMaria
Publicado: 22/01/2010 11:35 am

Tengo un formulario que envia 2 archivos adjuntos, lo probe y anda bien. Pero si cargo un archivo pesado no lo envia. Modifique el tiempo, modifique el tamaño, y nada, que mas hay que hacer para que lo acepte. Gracias

alejandro loza
Publicado: 30/01/2010 7:42 pm

mirá loco tu tuto fue el mejor sin duda el mas haceptable, sin igual… lo que te queria preguntar es como hacer que las imagenes ya subidas (a mi servidor) tengan ya una visualizacion en miniatura de la foto que se subio, asi mis usuarios ven en chiquito (antes de abrir la foto) la imagen que estan por abrir; No se si me entiendo, lo queria hacer como tipo visualizacion previa viste?? asi lo quiero y si se puede vos me diras… cualquier cosa mandame un mail con el codigo fuente a alejandro_loza_4@hotmail.com

unijimpe
Publicado: 30/01/2010 8:08 pm

Lo que puedes hacer es generar un thumbnail o una versión pequeña de la imagen recien subida. Para crear thumbnail de imagenes puedes leer: http://blog.unijimpe.net/generar-thumbnails-con-php/

alejandro loza
Publicado: 03/02/2010 12:00 am

mira no entendi el tuto de las imagenes del enlace que me diste, sinceramente no lo entiendo me podrias ayudar, yo hice asi:
guarde el “resize.txt” a “resize.php” como dijiste, ahora lo que no entiendo es lo siguiente, cuando me decis que tengo que crear otro archivo “php” con que nombre lo guardo??, y en dnd guardo los archivos que me decis, en la carpeta donde esta upload.php??.
Tambien tengo ota pregunta como hago para que mis usuarios suban sus fotos junto a una pequeña descripcion y un comentario corto de la foto

Adrian
Publicado: 23/02/2010 12:29 am

NECESITO AYUDA URGENTE adrdomene@hotmail.com :(

Lili
Publicado: 02/03/2010 9:50 am

buenos dias, como estas??
he estado leyendo tu blog erperando conseguir una solucion a mi poblema, necesito añadir desde php una imagen en un archivo de excel, he buscado la solucion por varias partes y he tratado todas las opciones que he conseguido y no lo he logrado, espero que me puedas ayudar!! gracias

Seguridad en Upload de Archivos | unijimpe
Publicado: 04/03/2010 12:53 am

[...] un oportunidad hemos explicado como hacer Upload de Archivos con PHP, donde explicamos el proceso de subir el archivo y obviamos el tema de la seguridad, esto para ser [...]

Uziel Trujillo
Publicado: 05/03/2010 4:02 pm

Hola quel tal amigo, aca tengo una manera diferente de subir una imagen a una carpeta X en tu servidior, ademas utilizando clases, es realmente muy sencillo su forma de uso.

Cuidense a todos espero les sirva, muy util tu info por cierto.

entren a http://cretinoeirreverente.freehostia.com

en la seccion PHP encontraran lo que buscan, ademas de descargar los codigos fuente

Manu
Publicado: 20/03/2010 8:24 am

Hola soy nuevo en este mundo y he estado probando el codigo pero no me sale bien. Subo al servidor todos los ficheros despues voy a la web pulso el boton a enviar me envia el siguiente error.
Parse error: syntax error, unexpected T_STRING in /xxxx/xxxx/public_html/xxxxx/upload.php on line 13
La linea de codigo numero 13 contiene:
$status = "Archivo subido: <b>".$archivo."</b>";
No se por que no funciona. Pueden ayudarme gracias.

Manu
Publicado: 20/03/2010 8:28 am

Nada que no medeja, bueno es la linea que conincide con tu codigo numero 13

Muchas gracias y disculpen las molestias.

unijimpe
Publicado: 20/03/2010 1:16 pm

Manu, te recomiendo utilizar la clase para subir archivos de forma segura, para ello puedes leer: http://blog.unijimpe.net/seguridad-en-upload-de-archivos/

Manu
Publicado: 21/03/2010 3:17 pm

Hola de nuevo, tengo una duda de MySql. En mi formulario tengo un dato que es un boton de opciones, creado en DWcs3. Que tipo de dato tengo que poner en la base de datos, ya que TEXT, no recoje nada.

Muchas gracias, por vuestra ayuda.

Julian Lasso
Publicado: 23/03/2010 1:43 pm

Hola, sé que la publicación es súper vieja pero me ha servido de mucho, muchas gracias :)

Salu2

Iliana Ontiveros
Publicado: 23/03/2010 7:12 pm

Te lo agradezco infiniiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiitamente!!! Muchas gracias por explicarlo de una manera tan clara y sencilla.

Iliana.

VTR
Publicado: 06/04/2010 4:54 pm

De lujo

UNNAMED :D
Publicado: 18/04/2010 11:16 am

SOS GROSO! SABELOOOOOOOOOOOO! :D Funco al pelo esta wea!

yegarces30
Publicado: 05/05/2010 11:47 am

Tengo un problema y es que no me sube el archivo.
Les explico.
Tengo el siguiente codigo en un archivo llamado prub.php

Documento sin título

Enviar un nuevo archivo:

Tengo el formulario con el método post, al hacer click sobre el botón enviar, me lleva a la misma pagina y debe mostrarme el texto ‘valor ingresado’ pero no lo hace. El valor $_POST['userfile'] no existe.
No se porque no se esta haciendo el método POST. Necesito ayuda.

Carlos
Publicado: 05/05/2010 4:21 pm

unijimpe, nos podrias ilustras con el script para subir dos archivos al mismo tiempo y guardar el registro en una base de datos. gracias

Checo
Publicado: 14/05/2010 1:03 pm

que tal bueneas tardes, estoycreando una pagina con opcion de subir archivos de video personales de cualquier formato (avi, mp4, rmvb, etc), el problema que tengo es que, cuando implemento este codigo, si funciona perfectamente con los archivos de imagenes, pero cuando intento subir un archivo .mp4 me marca error, y que el archivo no se puede subir, alguien sabe a que se debe?, o si conoce alguna otra manera de subir archivos de video se les agradeceria bastante, de antemano gracias.

esteban
Publicado: 15/05/2010 10:11 am

Buenos dias, acabo de subir los archivos al servidor y cuando ejecuto el upload.php me da un error http 500 error interno del servidor.
Que debo hacer? necesito que funcione urgente porque es para un trabajo que debo entregar

Gracias

Daniel
Publicado: 03/06/2010 5:02 pm

Hola, muy buen aporte.

El problema que tengo, es que quiero guardar el nombre que genera el ejemplo en la base de datos para haci poder ligarlos a un usuario, mencionas que para guardar el nombre de la imagen tenemos que usar un SPLIT, pero la verdad no se como funciona que me recomiendan???

PePe
Publicado: 03/06/2010 5:12 pm

HOLA WOW!!!! ME AYUDO MUCHO ESTE PEQUEÑO PROGAMITA…. NADA MAS UNA COSA SI QUIERO PONERLE COMENTARIOS A LA FOTO COMO LE HAGO?? CON ESTE MISMO EJEMPLO,POR EJ SUBO MI FOTO Y DE COMENTARIO LE QUIERO POENER “BONITAS VACACIONES” Y QUE SEVEA LA FOTO CON EL COMENTARIO, COMO LE HAGO???

GRACIAS POR SU TIEMPO

Erick
Publicado: 04/06/2010 10:16 pm

hola!!! disculpen… como seria la manera para subir varios archivos al mismo tiempo… el codogo me funciona bien, pero quisiera subir mas de uno… gracias!!!

unijimpe
Publicado: 05/06/2010 12:23 pm

PePe, para guardar las imágenes con comentarios o texto asociados tienes que hacerlo con una base de datos, para ello debes crear una tabla donde se guarde el nombre del archivo y un campo para comentario.

Erick para subir varias imagenes a la vez debes realizar la verificación varias veces donde lo unico que va a cambiar es el nombre del campo en tu formulario, por ejemplo estas subiendo; foto y mapa entonces es necesario verificar estos dos campos, para el campo foto utilizas:

$archivo = $_FILES["foto"]['name'];

y para el campo mapa utilizas:

$archivo = $_FILES["mapa"]['name'];

Para estos casos es recomendable convertir el proceso de verificación del upload en una función para poder utilizarlo varias veces rápidamente.

Ahora te recomiendo que utilices una clase llamada Upload la cual te facilitará el upload de archivos y ademas le agrega seguridad a tus uploads, puedes leer mas en Seguridad en Upload de Archivos

jair
Publicado: 07/06/2010 9:33 pm

este es el que verdaderamente valió la pena

Cristian Gutierrez
Publicado: 09/06/2010 8:43 pm

Probé su ejemplo y me funciono de maravilla….
Una consulta, como se hace para borrar los archivos subidos…..espero que me pueda ayudar…

PePe
Publicado: 10/06/2010 1:49 pm

Muchas gracias, si agrege el campo de mensaje tanto en el ejemplo y en la base de datos y ya quedo, muchas gracias, de ehcho le agrege una tabla para que se desplegaran de tres en tres y investigando un poquito hice que las imagenes se vieran de un tamaño que yo quiero no importa las medidas de la misma.

Muchas gracias por todo!!

katty
Publicado: 14/06/2010 1:59 am

hola kisiera saber como puedo hacer para mostrar el video q subi para q se reproduzca

Daniel
Publicado: 28/06/2010 6:26 pm

hola.
quisiera saber si alguein sabe como puedo bajar el tamaño de las imagenes, es decir, el peso de las mismas, si pesan 500 kb bajarlas a 100kb, lo que quiero hacer, es que el usuario suba la imagen y que no importando el peso de la imagen, esta baje a un peso que yo quiero, y asi no tenga problemas el usuario de que tiene que editar la imagen primero para poderla subir.

unijimpe
Publicado: 28/06/2010 6:46 pm

Daniel, lo que puedes hacer es generar una versión mas pequeña de la imagen e incluso cambiarle de calidad con lo cual reducirías el tamaño de la imagen. Puedes leer un articulo que explica como generar una versión de la imagen con menor tamaño en: Generar Thumbnails con PHP

oscar
Publicado: 02/07/2010 1:05 pm

ya le di permisos a esa carpeta en mi ftp pero me sale este error cuando quiero cargar el archivo
Warning: copy(files/3fd96c_setup.exe) [function.copy]: failed to open stream: Permission denied in C:\Inetpub\vhosts\iepdivinomaestro.com\httpdocs\upload.php on line 13

Jen
Publicado: 07/07/2010 2:51 pm

Hola probre tu codigo y me da el siguiente error: “.$archivo.”"; } else { $status = “Error al subir el archivo”; } } else { $status = “Error al subir archivo”; } } ?>

simplemente cree dos archivos
a.html que es donde esta unicamente lo que tu escribiste para el formulario
y upload.php que esta todo lo que colocaste para dicha pagina lo deje tal cual no he cambiado nada en ninguno de las dos paginas pero no se porque este error, si me puedes ayudar te lo agradezco

Isaac
Publicado: 08/07/2010 3:02 pm

Estimado.. antes de seguir con lo que quiero consultar, esto es un muy buen aporte me funciono de maravilla.

Mi consulta es la siguiente hay alguna forma de que el valor de la variable archivo sea guardado en una base de datos para despues mostrarlo como un link??? si me pudieras ayudar con eso te lo agradecer un monton…. yo intente hacerlo pero no me funciono como lo pense…..

MiloOoO
Publicado: 09/07/2010 10:55 am

Hola alguien me puede decir como subir varias imagenes a una base de datos, ya que son demaciadas imagenes y me pidieron que hiciera algo para subir varias imagenes a la vez.

Saludos.

Carol
Publicado: 14/07/2010 9:50 am

Necesito por favor me regale los dos formularios de muestra, por que los copio y me sale este error:
Not Found
The requested URL /devphp/=$PHP_SELF was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at hse.com.co Port 80

danny
Publicado: 18/07/2010 4:22 pm

me gustaria vaciar la carpeta files no se como se haria

ch3_k
Publicado: 20/07/2010 12:28 am

hola un gusto en saludar me gustaria saber como puedo subir una archivo de mas de 100 MB con un formulario por favor agradeceria su ayuda

antoni
Publicado: 28/07/2010 2:50 am

mi duda es como la de pepe, subir una imagen con comentario, a lo que vos le respondiste:

PePe, para guardar las imágenes con comentarios o texto asociados tienes que hacerlo con una base de datos, para ello debes crear una tabla donde se guarde el nombre del archivo y un campo para comentario.

Como hago eso me podrias guiar?

el upload me anda de maravilla, pero a ese upload agregarle un comentario de la foto y que me las vaya guardando en un index.

EFREN
Publicado: 28/07/2010 5:14 pm

Muy bueno tu tutorial, con una gran explicacion y mouy aorganizados los codigos, lo cual hacen mas sencillo, el entendimiento de la explicacion, sigue asi y espero sigas publicando cosas tan chidas como estas adiuuu jejejeje.

Nibaldo Leiva
Publicado: 01/08/2010 12:50 pm

Muy bieno el tutorial, no se puede pedir codigo mas sencillo y limpio, se agradece

gilberto
Publicado: 02/08/2010 9:02 am

buenos dias amigo unijimpe baje tu upload para archivos y quede muy complacidso pues es completamente funcional solo tengo una duda que quisiera por favopr si no es mucha molestia me aclararas como hago para que el archivo que sube cada usuario quitarle esa numeros que coloca por defecto antes del nombre

gracias espero tu respuesta compañero

unijimpe
Publicado: 02/08/2010 11:34 pm

gilberto para mantener el nombre original del archivo que se ha subido debes modificar la línea donde se crea la variable destino que es la que contiene la variable con el nombre del archivo a guardar:

El código original mostrado es:

$destino = "files/".$prefijo."_".$archivo;

Lo cambiamos por el siguiente:

$destino = "files/".$archivo;

giovanni
Publicado: 04/08/2010 4:50 pm

mi pana buen tutorial exactamente lo que buscaba estoy probando pero lo que he leido me dejado muy claro solo queria saber como hago para configurar el archivo php.ini

gilberto
Publicado: 04/08/2010 10:17 pm

hola amigo unijimpe muchas gracias por tu respuesta mas clara no pudo ser, ya que quite el prefijo y todo perfecto. pero como buen curioso queria preguntarte algo mas si no es mucha molestia resulta que tengo un codigo php que imprime datos quisiera que uno de eso datos se llamara replay pero no fuera un dato escrito si no un archivo que la gente subiria a mi web gracias a tu sistema de upload pero me gustaria que los archivos subidos quedaran impreso en el mismo renglon de lo demas. lo que no se es como fucionar mi codigo con el tuyo de upload para lograr esta tarea. como una imagen habla mas que mil palabras hay te doy el link para que si quieres llenes datos y miras como agregarle mi sistema tu sistema de upload http://darkmaster.hacernethost.co.cc/comentarios/comentarios/index.php
en lo que me puedas orientar prestar una ayudar o mostrarme otra forma tener impresion y upload de datos en un mismo php te quedaria altamente agradecido
gracias espero tu respuesta compañero

javier
Publicado: 07/08/2010 10:04 pm

Hola que tal unijimpe, tengo la siguiente duda; e modificado el codigo de la siguiente manera para comprobar si la imagen existe y se existe al lombre le genera un numero al azar


if(file_exists($server[$rand_server].'/'.$destino[$rand_destino].'/'.$nombre.'.'.$tipo))
{
$nombre .= "_".rand();
}

Pero lo que quiero hacer es que si la imagen ya existe le agrege un numero por ejemplo imagen_001.png y si vuelvo a subir la misma imagen sea imagen_002.png y asi sucesicamente.

Espero que me puedas ayudar (y)

Saludos y gracias de antemano

audio rodriguez
Publicado: 08/08/2010 8:58 pm

como se hace para que despues de cargado el archivo se le cambien los permisos automanticamente. ?

javier
Publicado: 11/08/2010 3:36 pm

mch!!!!!!! en el primer y segundo comentario no funcionaron las etiquetas

javier
Publicado: 11/08/2010 3:37 pm

perdon por el span pero porque no sale el codigo??????’ usa chmod

avelino
Publicado: 24/08/2010 5:34 pm

ola… gracias por el aporte realmente me sirvio =)
pero quisiera saber como hacer para que mientras copia
la imagen de la computadora al servidor la variable $status digue “cargando” y cuando termine de subir digue “Archivo subido: “.$archivo.”“;
y tambien como obtener el ‘size’ de ancho y largo de la imagen
ayuda por favor gracias

javier muñoz
Publicado: 25/08/2010 10:24 am

Hola buen día…
Solicitando ayuda unijimpi… hice pruebas con el código que muestras y funciona a la perfección. Quiero utilizar tu código con código que yo tengo.
Veras estoy tomando información de un documento pero tengo que definirlo desde el principio, hay forma de utilizar tu código, es decir jalar el archivo que yo desee pero en lugar de guardarlo en la carpeta file. Poner el archivo o ruta en donde yo definido mi documento es decir reemplazarlo… este es el código..

$line) {$datos = explode(“,”, $line); ?>

espero me de aentender donde defino mi documento a utilizar, puedo poner el documento que estoy jalando con tu codigo?, hice estas pruebas pero pues no mas no,

espero me puedas ayudar te lo agradecere bastante ya llevo varios dias intentando y no e logrado lo requerido. gracias

javier muñoz
Publicado: 25/08/2010 10:27 am

$line) {$datos = explode(“,”, $line); ?>

las pruebas realizadas…

javier muñoz
Publicado: 25/08/2010 10:31 am

textarea rows=”8″ cols=”30″ name=”textarea” wrap=”virtual”>
$lines = file(‘ejemplo1.csv’);?>
foreach ($lines as $line_num => $line) {$datos = explode(“,”, $line); ?>
= $datos[0]
= $datos[1],”,”?>} //fin foreach ?>
/textarea>

Andrés Chandía
Publicado: 07/09/2010 4:35 am

Muy buen tuto, todo me funciona ….. desde linux (ubuntu), pero desde windows no. Explico:
He definido este tipo de archivo para subir
if ($tipo == “text/csv”) {
si subo el archivo desde un ubuntu no tengo ningún problema pero si lo subo desde windows me da error, activé visibilidad de la extensión del archivo, probé cambiando a:
if ($tipo == “image/png”) {
y funciona en los dos SO.
¿Cómo puedo solucionar esto?

Otra duda, un poco menos urgente, ¿puedo hacer que la restricción sea no sólo por la extensión del archivo, sinó que también por parte del nombre, ejemplo, estoy generando archivos csv con el siguiente formato:
archivo1.100905_timetable.csv
archivo2.100906_timetable.csv
archivo3.100907_timetable.csv

como se puede ver la parta de “_timetable.csv” siempre está presente, ¿puedo hacer que la restricción sea ésta y no sólo “.csv”?

Gracias de antemano por la ayuda.

Andrés Chandía
Publicado: 07/09/2010 7:17 am

Ya encontré la solución:

http://blog.futtta.be/2009/08/24/http-upload-mime-type-hell

así que en mi código ahora tengo:

if ($tipus == “text/csv” || $tipus == “application/vnd.ms-excel”) {

por si a alguien más le sirve…..

Andrés Chandía
Publicado: 07/09/2010 7:23 am

De todas maneras me interesa una solución par la segunda cuestión que planteaba:

¿puedo hacer que la restricción sea no sólo por la extensión del archivo, sinó que también por parte del nombre, ejemplo, estoy generando archivos csv con el siguiente formato:
archivo1.100905_timetable.csv
archivo2.100906_timetable.csv
archivo3.100907_timetable.csv

como se puede ver la parta de “_timetable.csv” siempre está presente, ¿puedo hacer que la restricción sea ésta y no sólo “.csv”?

Gracias de antemano por la ayuda.

unijimpe
Publicado: 07/09/2010 1:01 pm

Andrés para verificar que el archivo solo contenga los nombres como tu los necesitas puedes utilizar la función strpos la cual cual devuelve en que posición se encuentra una cadena y si no existe la cadena devuelva falso.


$pos = strpos($archivo, “_timetable.csv”);
if ($pos === false) {
echo "archivo invalido";
} else {
// archivo valido -> procesas el archivo
}

Andrés Chandía
Publicado: 08/09/2010 6:37 am

Gracias por tu respuesta, he intentado varias opciones pero no me aclaro, no sé donde ubicar el código.
Lo que tengo:

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos datos del fichero
$tamano = $_FILES["fichero"]['size'];
$tipo = $_FILES["fichero"]['type'];
$fichero = $_FILES["fichero"]['name'];
$pos = strpos($archivo, "_timetable.csv");

if ($fichero != "") {
if ($tipo == "text/csv" || $tipo == "application/vnd.ms-excel") {
$destino = "ficheros/".$fichero;
if (copy($_FILES['fichero']['tmp_name'],$destino)) {
$status = "Fichero Subido: “.$fichero.”";
}
else {
$status = “Error al subir el fichero”;
}
} else {
$status = “Error: sólo se permiten ficheros con extensión _timetable.csv“;
}
} else {
$status = “Error al subir el fichero”;
}
}
echo $status;
?>

Daniel
Publicado: 12/09/2010 2:01 pm

Hola,

He intentado utilizar varios códigos encontrados en la Web, pero con ninguno he tenido resultado. Tengo el siguiente codigo:

<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "”;

//datos del arhivo
$path=”uploadas/”;
$nombre_archivo = $_FILES['userfile']['name'];
$tipo_archivo = $_FILES['userfile']['type'];
$tamano_archivo = $_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 < 1000000000))) {
echo "La extensión o el tamaño de los archivos no es correcta. Se permiten archivos .gif o .jpgse permiten archivos de 100 Kb máximo.”;
}else{
if (copy($_FILES['userfile']['tmp_name'],$path))
{
echo “El archivo ha sido cargado correctamente.”;
}
else
{
echo “Ocurrió algún error al subir el fichero. No pudo guardarse.”;
}
}
?>

Y siempre sale error al subir el archivo.

Aclaro que tengo los directorios con todos los permisos (valor numérico 777) y aún así no logro tener éxito.

Alguien que me pueda ayudar urgente ????

Andrés Chandía
Publicado: 13/09/2010 3:36 am

Hola Daniel,
por lo que me comentó unijimpe, la función “strpos” que estás utilizando para comprobar archivos, no es la indicada, “strpos” se utiliza para “nombres” o partes de nombres de archivos, si te fijas en el código que colgué tengo la siguiente línea, y me funciona perfectamente:

if ($tipo == “text/csv” || $tipo == “application/vnd.ms-excel”) {

que puedes sustituir por:
if ($tipo == “image/jpg” || $tipo == “image/png”|| $tipo == “image/gif” ) {

Espero que esto te ayude.

Daniel
Publicado: 13/09/2010 10:42 am

Andrés gracias,

Voy a cambiar el código y te comento.

Gracias,

Daniel

javier
Publicado: 16/09/2010 4:28 pm

Hola que tal unijimpe, tengo la siguiente duda; e modificado el codigo de la siguiente manera para comprobar si la imagen existe y se existe al lombre le genera un numero al azar

if(file_exists($server[$rand_server].’/’.$destino[$rand_destino].’/’.$nombre.’.’.$tipo))
{
$nombre .= “_”.rand();
}

Pero lo que quiero hacer es que si la imagen ya existe le agrege un numero por ejemplo imagen_001.png y si vuelvo a subir la misma imagen sea imagen_002.png y asi sucesicamente.

Espero que me puedas ayudar (y)

Saludos y gracias de antemano

BETO
Publicado: 21/09/2010 5:48 pm

Muy buen tutorial, me ha sido de gran ayuda, muchas gracias!!!

Andrés Chandía
Publicado: 27/09/2010 5:18 am

Bien, finalmente he podido restringir la subida de archivo al tipo y a parte del nombre, dejo mí código po si a alguien le sirve:

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datoss del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
//agregamos restricción del nombre
$pos = strpos($archivo, "_timetable.csv");

if ($archivo != "") {
if ($tipo == "text/csv" || $tipo == "application/vnd.ms-excel") {
if ($pos == false) {
$status = "Error: sólo se permiten archivos con extensión _timetable.csv“;
}else {
$destino = “archivos/”.$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = “archivo Subido: “.$archivo.”
“;
}
else {
$status = “Error al subir el archivo”;
}
}} else {
$status = “Error: sólo se permiten archivos con extensión _timetable.csv“;
}
} else {
$status = “Error al subir el archivo”;
}
}
echo $status;
?>

jose
Publicado: 27/09/2010 2:53 pm

buen tutorial amigo. Tienes idea de como hacer uploads usando el framework codeigniter .

javier
Publicado: 27/09/2010 8:56 pm

unijimpe me puedes ayudar???

saludos!!!

Irina Fong
Publicado: 21/10/2010 5:07 pm

Esta muy bueno este blog.
Bendición, por todo el conocimiento compartido.

voidreamer
Publicado: 23/10/2010 6:40 pm

impecable, gracias !

Mabel
Publicado: 27/10/2010 11:26 am

Excelente tu ayuda… Muchas gracias… LO LOGRAMOS!!!

leonardo
Publicado: 28/10/2010 12:04 am

HOla que tal, he modificdo el codigo que vi aca, y he restringido el cidgo con los sig extenciones para que se puedan subir PDF,ZIP,JPG Y GIF, pero me aparece esto que al subir solo esas extenciones “PDF,ZIP,JPG Y GIF” no me deja subirlas le he puesto elmsj que dije solo esas extenciones pero igual no me deja subirlas a pesar que pongo las mismas
les paso el codigo para que me ayuden a ver que puede ser

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];

if ($archivo != "") {
if ($tipo == "pdf" || $tipo == "zip" || $tipo == "jpg" || $tipo == "gif" ) {

// guardamos el archivo a la carpeta files
$destino = "files/".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status ="Archivo subido correctamente: “.$archivo.”“;
} else {
$status = “Error al subir el archivo”;
}
} else {
$status = “Error: solo se permite PDF,ZIP,JPG Y GIF”;
}
} else {
$status = “Error al subir archivo”;
}
}

?>

a ver si alquien mepuede ayudar??? gracias

mi mail es leosalomon@gmail.com

javier
Publicado: 28/10/2010 2:21 pm

hola, como se puede saber quien subio el archivo y la fecha y hora

Alvaro
Publicado: 12/11/2010 3:54 am

Está genial, pero me pregunto si alguien podría decirme como en el listado de archivos poner una X al lado de cada uno para la eliminación de este.

Gracias.

Diego-el secreto
Publicado: 22/11/2010 10:07 pm

gracias, justo lo que buscaba…lo pruebo y vuelvo a comentar…saludos

Alexandro
Publicado: 03/12/2010 1:53 pm

Bueno antes que n ada gracias por el aporte, hace rato que estoy ccharreando con el PHP pero sigo siendo un aprendiz, en gran medida por ser autodidacta.

Tengo una duda con el readdir, y es que organiza los archivos por los nombere ISO, lo que hace que queden desordenados en realida, quiera que los listara o bien alfabeticamente o bien que mostrara el último primero y así seguidamente…

Ya se que para que los ordene debo usar la opción array, y crear la matriz para que los ordene, pero me ha sacado abstante canas encontra la manera.

Nuevaente gracias por su ayuda…

Javier
Publicado: 21/12/2010 7:51 pm

hola, todo funciona a la perfeccion, ahora como le hago para que cuando le de al boton examinar, en esa ventana pueda seleccionar varios archivos a la vez y no solo uno?? ok espero tu respuesta, gracias

Charls Carreón
Publicado: 29/12/2010 12:45 pm

que tal, que tengo que agregar o hacer para que cuando le de al boton examinar, en esa ventana pueda seleccionar varios archivos a la vez y no solo uno?? ok espero tu respuesta, gracias, exitoso 2011!!!

unijimpe
Publicado: 29/12/2010 1:16 pm

Para seleccionar varios archivos a la vez, necesitas hacer un uploader con Flash, con este método puedes seleccionar multiples archivos, incluso restringir a que el usuario solo pueda seleccionar archivos con la extensión .jpg por ejemplo. Podrías escoger alguna librería que haga upload con el uso de flash.

David Cruz
Publicado: 03/01/2011 7:04 pm

Hola amigo, necesito tu ayuda.. de paso te deseo feliz año nuevo… espero que andes muy bien :)

Pues resulta que estoy implementando tu formulario de upload para subir unas imagenes para un formulario web que estoy implementando. esto viene siendo como una plantilla donde solo se cambia la imagen.

puedes ver aquí
http://asprov.mx/app/login/cargar_imagen/alejandra/formulario/formulario.php

Y la imagen para la plantilla la estoy subiendo aquí.
http://asprov.mx/app/login/cargar_imagen/alejandra/

Pero el problema es que … aun habiendo dado los permisos al directorio no sube nada y por ende no actualiza mi imagen…

He modificado el formulario para dejar establecido un nombre a la foto… y la ruta también…

No me da ningún error y solo se queda un tiempo como que si la sube, pero al final nos sube nada.

en el Servidor ya fui a ver el php config y nada… probé el limite de tiempo y del tamaño del archivo, sin embargo sigue sin funcionar.

Saludos espero tu respuesta

unijimpe
Publicado: 03/01/2011 9:28 pm

Según el código publicado no deberías tener ningún problema en el upload. Para depurar tu archivo puedes agregar como primera línea de código:

error_reporting(E_ALL);

Esto imprimirá todos los errores que se generen en tu script PHP.
Adicionalmente luego de recibir los datos desde el formulario puedes imprimir los datos que se enviaron mediante:

print_r($_FILES);

David Cruz
Publicado: 03/01/2011 10:57 pm

Muchas gracias, pues mira… esto es lo que me salio
Array ( [archivo] => Array ( [name] => Koala.jpg [type] => image/jpeg [tmp_name] => /tmp/php3PWivU [error] => 0 [size] => 780831 ) ) Array ( [archivo] => Array ( [name] => Koala.jpg [type] => image/jpeg [tmp_name] => /tmp/php3PWivU [error] => 0 [size] => 780831 ) )

Jdl
Publicado: 12/01/2011 10:04 am

Tengo en mi aplicacion el codigo php y html en el mismo archivo, pero necesito que cuando la pagina se recargue el archivo quede cargado, ya que tengo unos select que cargan datos dependiendo de la seleccion de otros select los cuales me recargan la pagina para llenar los select dependientes, pero cuando recargo la pagina mi archivo cargado desaparece.

Jdl
Publicado: 12/01/2011 10:13 am

mi codigo es el siguiente:

1048576){
$msg = 'El tamaño máximo de archivo debe ser 1MB';
}
else{
if (!(move_uploaded_file($_FILES['userfile']['tmp_name'], 'adjuntos/'.$nombre_archivo))){
$msg = 'Error al cargar el archivo adjunto';
}
else{
$ruta_adjunto = 'adjuntos/'.$nombre_archivo;
}
}
}
}
?>

guardo la ruta del archivo en la base de datos cuando el cliente guarda la solicitud, pero si mi cliente deja la pagina sin haber guardado el archivo queda almacenado en el servidor y esto me lo quiero evitar.

Charles
Publicado: 17/01/2011 7:21 pm

Hola, lo primero dar las gracias por tu interesante tutorial.

Estoy probando tu archivo de ejemplo en mi servidor y me da el siguiente error:

Warning: copy(files/0178d6_img1.jpg) [function.copy]: failed to open stream: Permission denied in midireccion/miarchivo.php on line 13

Ya he cambiado las propiedades de las carpetas, no se a que se debe…

Gracias de antemano

Gregory
Publicado: 25/01/2011 1:04 pm

tengo el mismo error que Charles, habría la posibilidad de solucionarlo, porfa

Gregory
Publicado: 25/01/2011 3:52 pm

acabo de solucionar el problema que también lo tiene Charles, y es que ya está en el mismo tutorial sólo que no me fijé muy bien,

No olvidar darle permiso 777 a la carpeta donde se van a guardar los archivos subidos en este caso carpeta: ‘files’

Saludos a tod@s

Juampi
Publicado: 26/01/2011 3:36 am

Hola.

Logré subir los archivos.

El problema es que quiero actualizar la imagen.

Pensé en:
1. tomando la ruta de la imagen de la base de datos
Cree la funcion eliminar: (no funciona)
$sql = “SELECT * FROM detalles WHERE id=$_GET[id]“;
$result = mysql_query(“$sql”);
function deleteFILE($filename) {
global $result;
if (is_file($filename)) {
unlink($filename);
} else {
echo “El archivo no existe”;
}
}

Elimino el archivo:
while ($row = mysql_fetch_array($result)) {
deleteFILE($row['img_thumb']);
}

2. Actualizo la base de datos con el nombre del nuevo archivo (funciona)
function actualizar($tabla, $value1, $value2, $where){
return mysql_query(“UPDATE $tabla SET $value1, $value2 WHERE $where”);
}

Actualizo
//Actualizamos la base de datos
if (!empty($thumbsnail)) {
actualizar(“detalles”, “img_thumb=’proyectos/thumb/$thumbsnail’”, “id=’$ID’”, “id=’$ID’”);
}

Cargo el nuevo archivo al directorio
function move($var, $valor1, $valor2){
if (!empty($var)) {
move_uploaded_file($valor1, $valor2);
}
}

//Cargamos los archivos nuevos
$tmp_name_thumb = $_FILES['img_thumb']['tmp_name'];
$file_name_dir_thumb = “proyectos/thumb/”.$_FILES['img_thumb']['name'];
move($thumbsnail, “$tmp_name_thumb”, “$file_name_dir_thumb”);

NO funciona eliminar el archivo.
SI funcionan actualizar datos en base de datos y y mover el archivo al directorio.

Como elimino la imagen del directorio para poder actualizar con la nueva imagen??

Omar
Publicado: 08/02/2011 4:46 pm

Hola unijimpe tengo el siguiente codigo, es un formulario de encuesta que me genera un .xml y me lo guarda en la carpeta results de mi server…

Como puedo hacer para que ese archivo que genera me lo envie a un email???
Ojala puedas ayudarme, de antemano gracias!!!


<?php
if(!empty($_POST['xml_data']))
{
$data_xml = $_POST['xml_data'];
$fileName = "Quiz.".date(DATE_ATOM, time()).".xml";
$filePath = "../results/".$fileName;
$fp = fopen($filePath, 'w') or die("error");
fwrite($fp,$data_xml,strlen($data_xml));
fclose($fp);
echo "success".$fileName."";
} else
{
echo "error";
}
?>

mayuli
Publicado: 22/02/2011 10:51 am

Hola, una pregunta,como enlazo este ejemplo para poder leer ese archivo que se cargó en el servidor.
Por ejemplo cargué un archivo.xlt ó xls y ahora quiero leerlo y otro caso insertar esos datos en mysql??

clemente
Publicado: 28/02/2011 3:31 am

q tal muy bien compañero por ese magnifico codigo la verda q bueno q compartes tu codigo funciona a la perfeccion y ahora m puedes ayudar para q se pueda seleccionar varias imagenes x favor y gracias

Freddy
Publicado: 28/02/2011 3:33 pm

Amigo, infinitas gracias por el articulo.
ESTE SI QUE FUNCIONA, no tuve ni que tocar la configuracion de nada.
ni 777 siguiera, muchas gracias
Excelente codigo, excelente servicio a la comunidad.
MUCHAS GRACIAS

JHON FAIBER CERQUERA
Publicado: 06/03/2011 7:54 am

Excelente el tutorial…..felicitaciones al administrador del sistema…..

quiero hacer una pregunta…..

Necesito cargar solo archivos .PDF

que le tengo que hacer al codigo…..para estas restricciones…..

Gracias

towi62
Publicado: 14/03/2011 7:58 pm

Intente enviar el nombre de la imagen a la tabla de mi base de datos, la puse del lado donde muestra las imagenes con un hecho, tomando como variable $arch con la sentencia insert de sql, donde va el hecho del codigo, que sirve para mostrar las imagenes que estan en la carpeta del servidor. Pero pues cada ves que subo una nueva imagen, la tabla vuelve a recontar los archivos que estan en el servidor.
//abro el directorio donde estan las imagenes
if ($gestor = opendir(‘files’)) {
echo “”;
//con esto leo el directorio
while (false !== ($arch = readdir($gestor))) {
if ($arch != “.” && $arch != “..”) {

//Aqui me conecto a la base de datos
$link = mysql_connect(“localhost”,”root”,”");
mysql_select_db(“fotogra”,$link);

// y con la imagen leida inserto el nombre de la imagen en la tabla de imagenes.
mysql_query(“INSERT INTO imagenes (archivo)
VALUES (‘{$arch}’)”,$link);
}
}
closedir($gestor);
echo “”;
}

towi62
Publicado: 14/03/2011 8:14 pm

corrijo esto es lo ke me ha kedado en la solucion.
//abro el directorio donde estan las imagenes
$gestor = opendir(‘files’)

//con esto leo el directorio
$arch = readdir($gestor)

//Aqui me conecto a la base de datos
$link = mysql_connect(“localhost”,”root”,”");
mysql_select_db(“fotogra”,$link);

// y con la imagen leida inserto el nombre de la imagen en la tabla de imagenes.
mysql_query(“INSERT INTO imagenes (archivo)
VALUES (‘{$arch}’)”,$link);

closedir($gestor);

sondow
Publicado: 19/03/2011 10:32 pm

hola necesito saber como se hace para que tenga un filtro asi solo se puede subir archivos .swf y .fla

ROGELIO
Publicado: 02/04/2011 1:33 pm

oye me salio bien pero ahora como puedo mandar ese archivo o imagen por coorreo electronico
espero y me puedan ayudar se los agradeseria mucho

Florencia
Publicado: 12/04/2011 3:24 pm

Hola! como se hace paraque en vez de aparecer el link de la imagen aparezca directamente las imágenes? gracias!

oscar
Publicado: 16/04/2011 10:37 am

ola e intentado subir archivos pero me sale este error:

Parse error: syntax error, unexpected ‘}’ in F:\xampplite\htdocs\oscar\subirarchivos\upload.php on line 20

mi codigo es este:
<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {
// guardamos el archivo a la carpeta files
$destino = "files/".$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: “.$archivo.”“;
} else {
$status = “Error al subir el archivo”;
}
} else {
$status = “Error al subir archivo”
}
}
?>

les agradesco si me ayudan
saludos.

tatsDeveloper
Publicado: 20/04/2011 12:53 am

Hola, q tal?

Primero que nada felicidades por el post, esta muy interesante.
He probado con el código, y todo funciona bien hasta que quiero poner un limite en el peso de los archivo, asi es como modifique el código…

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {
if ($tipo == "image/jpeg" || $tipo == "image/jpg" || $tamano <= 921600) {
$destino = "files/".$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: ".$archivo."";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error: solo se permite JPG y menores a 900kb";
}
} else {
$status = "Error al subir archivo";
}
}
?>

el problema esq pesen lo q pesen de todas maneras hacepta el archivo, he probado ya con distintas cantidades de kb y aun asi....ojala alguien pueda ayudarme, gracias.

tatsDeveloper
Publicado: 20/04/2011 5:18 am

Ya solucione el problema, aquí dejo mi código por si a alguien más le sirve…

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);
$maxsize = 1024*900;

if ($archivo != "") {
if ($tipo == "image/jpeg" || $tipo == "image/jpg") {
$destino = "files/".$prefijo."_".$archivo;
if (@move_uploaded_file($_FILES['archivo']['tmp_name'],$destino)) {
if($tamano <= $maxsize){
$status = "Archivo subido: ".$archivo."";
}else{
unlink($destino);
$status = "Error: Tu archivo pesa más de 900kb";
}
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error: solo se permite JPG";
}
} else {
$status = "Error al subir archivo";
}
}
?>

saludos :)

Zipus
Publicado: 28/04/2011 2:56 pm

Quiero modificar esto:
$destino = "files/".$prefijo."_".$archivo;
Para que quede así:
NOMBREIMAGEN.25.4.11.jpg
es decir: nombre de la imagen, día, mes, año.
El problema es que la variable $archivo contiene la extensión y si uso date() después de $archivo queda algo como esto: NOMBREIMAGEN.jpg.25.4.11
(quedaria sin extensión)
Gracias de antemano por si ayuda!
Y felicidades por el post!

angel
Publicado: 16/05/2011 12:02 pm

buenas tardes, muy buen post me funciono muy bien queria saber si sabes como mostrar los archivos almacenados en esa carpeta y permitir abrir uno en especifico gracias

MANUEL ROSALES
Publicado: 02/06/2011 12:13 am

oie como elimno los archivos? ya probe tu ejemplo y si funciona bn el de upload , pero ahora como los elimino

jemp_intrepido
Publicado: 13/06/2011 11:39 am

hola no me funciono el ejemplo sube el archivo pero cuandon doy click en upload me manda el codigo de la otra pagina y no se si lo sube

Ruben
Publicado: 24/06/2011 10:28 am

Hola. Antes que nada te aviso que soy nuevo en PHP y tomé este ejemplo para probar cree el .htm y el .php pero elphp me muestra esto:

$status = “”; if ($_POST["action"] == “upload”) { // obtenemos los datos del archivo $tamano = $_FILES["archivo"]['size']; $tipo = $_FILES["archivo"]['type']; $archivo = $_FILES["archivo"]['name']; $prefijo = substr(md5(uniqid(rand())),0,6); if ($archivo != “”) { // guardamos el archivo a la carpeta files $destino = “ArcSubidos/”.$prefijo.”_”.$archivo; if (copy($_FILES['archivo']['tmp_name'],$destino)) { $status = “Archivo subido: “.$archivo.”"; } else { $status = “Error al subir el archivo”; } } else { $status = “Error al subir archivo”; } }

¿Que hice mal? Por sintaxis no puede ser ya que hice copy y past.
Por favor ayuda.
Gracias

Umaño Marcos
Publicado: 28/06/2011 4:53 pm

De diez Amigo! anduvo de joya! Muchas gracias por el aporte!

Christian
Publicado: 08/07/2011 10:28 pm

Disculpame, tengo este codigo pero quiero que las personas puedan adjuntar imagenes y archivos y que me lleguen a mi casilla junto con los demas datos… pero ya me rompi la cabeza y no doy con la solucion


El correo no puede enviarse debido a los siguientes errores:

<?php
echo "";
foreach($errores as $error)
echo ''.$error.'';
echo '';

?>

Apellido:<input type="text" name="Apellido" value="" size="25"/>
Nombre:<input type="text" name="nombre" value="" size="25"/>
Edad:<input type="text" name="edad" value="" size="25"/>
Ciudad:<input type="text" name="ciudad" value="" size="25"/>
Tu correo:<input type="text" name="correo" value="" size="25"/>
telefono Clanes:<input type="text" value="" name="telefono" size="50"/>
Mensaje:

<?php

}
//SI NO HAY ERRORES Y SE HA PULSADO EN ENVIAR, SE ENVIA EL MENSAJE
else{
//Todo parece correcto procedemos con la inserccion
$query = "INSERT INTO reclutar (apellido, nombre, edad, ciudad, correo, telefono, mensaje) VALUES('$apellido','$nombre','$edad','$ciudad','$correo','$telefono','$mensaje')";
mysql_select_db("medielgu_uuu"); // Uso la base de datos ejemplo

$ssql = "SELECT max(id)+1 id_maximo FROM reclutar"; // Leo el máximo id_categoria de la tabla categorias y le asigno el alias id_maximo
$rs = mysql_query($ssql); // Ejecuto el query guardando en el puntero $rs el resultado
$fila=mysql_fetch_assoc($rs); // Creo un array asociativo $fila con los diferentes campos del resultado
// Muestro la columna id_maximo
echo "Su número de presupuesto es: {$fila[id_maximo]}";

mysql_query($query) or die(mysql_error());

$to= "acaponetuemail@ajam.com";

$subject = 'Información Reclutamiento: '.$_POST['Apellido'];
$message = 'Nombre: '.$nombre."n".'Apellido: '.$Apellido."n".'Edad: '.$edad."n".'Ciudad: '.$ciudad."n".'telefono de Clanes: '.$telefono."n".'Mensaje: '.$mensaje."n".'IP del visitante: '.$pfw_ip."n".'Número de Presupuesto: '.$fila['id_maximo']."n";
$headers = "From: $correorn" .
'Reply-To:'.$correo."rn" .
'X-Mailer: PHP/' . phpversion();
$resultado=mail($to, $subject, $message, $headers);
//echo "El resultado es ".$resultado;
if($resultado)
echo "Correo enviado correctamenteGracias $nombre por ponerse en contacto con nosotros.Nos comunicaremos a la brevedad a la siguiente direccion $correo .";
else
echo "El correo no ha podido enviarse. Contacta a través del nuestro e-mail: tucorreo@mail.com. ";

//Enviando auto respuesta.
$pfw_header = "From: tucorreo@mail.comn"
. "Reply-To: tucorreo@mail.comn";
$pfw_subject = "Mensaje recibido, Asunto Reclutamiento sR|";
$pfw_email_to = "$correo";
$pfw_message = "Muchas Gracias $nombre, por su mensaje: $mensajen"
.'Nº de Presupuesto: '.$fila['id_maximo']."n"
. "Su mensaje ha sido recibido satisfactoriamente. n"
. "Nos pondremos en contanto contigo lo antes posible en su e-mail: $correo n"
. " n"
. " n"
. "--------------------------------------------------------------------------n"
. "Favor de NO responder este E-mail ya que es generado Automaticamente.n"
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;
}
}

//SI NO SE HA PULSADO ENVIAR SE MUESTRA EL FORMULARIO
else{?>

Apellido:<input type="text" name="Apellido" value="" size="25"/>
Nombre:<input type="text" name="nombre" value="" size="25"/>
Edad:<input type="text" name="edad" value="" size="25"/>
Ciudad:<input type="text" name="ciudad" value="" size="25"/>
Tu correo:<input type="text" name="correo" value="" size="25"/>
telefono Clanes:<input type="text" value="" name="telefono" size="50"/>
Mensaje:

Angelica
Publicado: 14/07/2011 12:52 pm

Hola Que tal, Tengo un problema ejecutando los archivos de prueba resulta que no los sube, yo estoy utilizando XAMP para probar mi base de datos

Angelica
Publicado: 14/07/2011 1:05 pm

Problema Resuelto …. Perdon

Alejandro
Publicado: 22/07/2011 3:29 pm

¿No seria más fácil comprobar la extensión de esta manera?

$extension = "(png|gif|jpg)";
if (eregi($extension . "$", $_FILES['archivo']['name'])) {
/*Codigo para subir el archivo*/
}
else{
echo 'error, extension no soportada';
}

Roxana
Publicado: 17/08/2011 2:15 pm

hola mira yo subo un excel a mi servidor luego, esa data la agrega a mis tablas e una bd, el problema es cuando el excel tiene muchos registros simplemente no agrega informacion en la base de datos

oscar
Publicado: 03/09/2011 12:28 am

Amigo tengo ubuntu 10.04 apache pero no logro que copie en la carpeta… el script es el tuyo, … quiero comiar el archivo tem a var/www/img

$status = “”;
if ($_POST["action"] == “upload”) {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != “”) {
// guardamos el archivo a la carpeta files
$destino = “files/”.$prefijo.”_”.$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = “Archivo subido: “.$archivo.”“;
} else {
$status = “Error al subir el archivo”;
}
} else {
$status = “Error al subir archivo”;
}
}

carlos
Publicado: 12/09/2011 7:58 pm

hola. necesito una ayuda par ami blog.. a mi me funciono a la perfeccion!!! ahora si quiero que se vean esas fotos en (por ejemplo) index, en en algun lado de la web, cuales son los codigos para que se vean las fotos?? desde ya muchas gracias y te agradeceria mas si me respondieras al mail..
saludos!

Lorena
Publicado: 14/09/2011 5:17 pm

Tengo que subir un archivo, pero es un servidor de donde trabajo, y justamente el requerimiento solicitado es que no se utilice con carpetas 777, porque por seguridad no lo quieren cambiar. Que opción existe de subirlo con esta restricción, y ademas que se pueda descargar de la carpeta, con este mismo inconveniente?

Gracias por las sugerencias

jorgwe
Publicado: 29/09/2011 1:37 am

sos grosooo sabeloo nunca pense que era taann facil jeje xD grax!

raul
Publicado: 04/10/2011 9:54 pm

Hola. probé el código y me funciona excelente en internet explorer, el problema es cuando quiero subir el archivo desde firefox o chrome, cuando pruebo subir en estos dos últimos navegadores simplemente no pasa nada.
Agradezco su colaboración para solucionar este problema.

Gracias.

Raul
Publicado: 10/10/2011 3:01 am

Muy bueno el script, era lo que estaba buscando.
Un millon de gracias
saludos

ronaldo
Publicado: 20/10/2011 9:50 pm

buenas noches… amigos nesecito saber como eliminar los archivos de la carpeta subidos por este metodo… todo lo demas me funciona perfecto, pero este metodo lo estoy usando para subir algunos catalogos y necesito poder tener la opcion de eliminarlos cuando hayan caducado y no tener el tedio de eliminarlos usando un gestor http://FTP... agradezco su pronta colaboracion…

patrick
Publicado: 26/10/2011 9:36 pm

saludos tengo un problema, las imagenes automaticamente me toman el valor de permisos 600 y vi que no diste la solucion ahi me puedes decir que pasa ahi?

luis enrique
Publicado: 02/11/2011 3:08 pm

Subo mis archivos con el formulario que expones en esta entrada de tu blog, ahora quiero mostrar todos los archivos que he subido en una tabla en php, es decir, es una tabla quiero mostrar la descripcion del archivo que subi, el archivo que subi y que tambien pueda descargarlo, se podra??, gracias! saludos!

Jorge
Publicado: 13/11/2011 12:51 am

primero que nada es muy bueno el script, se nota que les ha servido mucho a todos, bueno hola estuve viendo todos los comentarios y ninguno me sirvio para solucionar mi problema, el problema es que modifique los php.ini todos los que comentaban los usuarios y tu tambien pero aun asi no logro subir datos mas alla de los 2 megas, te juro que modifique todo y no hay resultados por ai mensionaste el size y el type pero solo eso quiero que me orientes porfavor por qcreo o mas bien estoy seguro que no va la solucion en php.ini si no q en el script que diste de ejemplo creo que aqui es donde hay que modificar el tamaño que queremos dubir, trabajo sobre windows7 en el sevidor de WAPPStack porfa tengo qeu salvar el año :s

aerview
Publicado: 25/11/2011 9:48 pm

Me funciono perfecto el tutorial,solo necesito saber urgentemente como eliminar ese mismo archivo con un link alli mismo para hacerlo,se los agradeceria muchisimos.

Vi un comentario que ocupaba lo mismo pero nadie lo resolvio,ojala y me puedan ayudar.

Gracias!!

Incaib
Publicado: 05/12/2011 6:36 pm

ENCANTADO SI SEÑOR

que buen tutorial me ha servido mucho, actualmente estoy trabajando a marchas forzadas para poner enmarcha el sitio. Cualquier colaboración no duden en contactar. Saludos desde Mallorca.

wolfyllow
Publicado: 10/12/2011 11:09 am

Gracias por el tutorial!! :) Me ha venido genial!

@Jorge: Tienes que cambiar el valor de upload_max_filesize en el fichero php.ini. En según qué plataformas está establecido a 2MB por defecto ;)

Un saludo y gracias de nuevo!

CesarMS
Publicado: 14/12/2011 9:24 pm

Gracias, muy buen tutorial.

carlos
Publicado: 15/12/2011 11:29 am

gracias por el codigo esta muy bueno

Ignacio
Publicado: 29/12/2011 4:19 pm

Hola.

Estupendo ejemplo, pero tengo la siguiente pregunta:

Partiendo del codigo original, que habría que añadir para que ademas de subir el fichero, el nombre del fichero quedara registrado en una campo de una base de datos.

Muchas gracias.

pirlo
Publicado: 02/01/2012 12:24 pm

exelente muy buena aportacion gracias

keyphercom
Publicado: 04/01/2012 5:08 pm

Pero como Puedo subir archivos rar, zip, ??????? muchas gracias por el articulo

James
Publicado: 30/01/2012 7:24 pm

Hola, esta genial este post..
tengo una pregunta, como puedo subir una imagen, visualizarla y ponerle un sello a la imagen cargado? no importa si es con o sin base de datos, alguien sabe como hacerlo…?? se lo agradeceria mucho…

Exitos Paisa Jim Peñaloza Calixto

Anónimo
Publicado: 11/03/2012 6:04 am

Muchas gracias, ¡MUY BIEN explicado!

Gabo86
Publicado: 13/03/2012 10:26 pm

He hecho de todo, dar permisos a la carpeta “files” (estoy trabajando de manera local), he tratado de subir cualquier tipo de archivo y tamaño, pero nada =( .. el único error que me arroja es “Error al Subir Archivo” .. =( hay algo que estoy pasando por alto? =(

NehuenSD
Publicado: 18/03/2012 2:00 pm

Bueno gente la verdad que el script esta muy bueno y andaba buscando algo asi, pero esta incompleto, no contiene un boton eliminar para poder hacer una gestion completa de archivos, por tal motivo aca les dejo el codigo optimizado del archivo upload.php que contiene la funcion eliminar para cada archivo subido, es codigo funciona a la perfeccion saludos!!

<?php
$status = "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
if ($archivo != "") {
$destino = "files/".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: “.$archivo.”“;
} else {
$status = “Error al subir el archivo”;
}
} else {
$status = “Error al subir archivo”;
}
}
if ($_POST["action"] == “eliminar”) {
$nombre_archivo = $_POST["link"];
$borrar = unlink($nombre_archivo);
}
?>

Sistema de carga de archivos

Por favor seleccione el archivo a subir:

Listado de Archivos Subidos

<?php
if ($gestor = opendir('files')) {
echo "”;
while (false !== ($arch = readdir($gestor))) {
if ($arch != “.” && $arch != “..”) {
echo ““.$arch.”

\n “;
}
}
closedir($gestor);
echo “”;
}
?>

NehuenSD
Publicado: 18/03/2012 2:02 pm

Si algo del escript no anda es por las comillas, remplacen todas las comillas por las dobles que estan sobre el boton 2, (esto es worpress no se los puedo pasar a la perfeccion) saludos nuevamente espero que lo encuentren util!!

Junior
Publicado: 29/03/2012 12:26 pm

Hola amigos, saludos a todos, como hago para q no me muestre la lista de archivos que he subido?

rominalopez
Publicado: 03/04/2012 4:50 pm

hola te copio tu codigo pero ami no me funciona :(

alguien me puede ayuda me dice que no puede ejecutar la funcion de copy y lo tengo tal cual como tu lo tienes ademas ya cree la carpeta con el nombre de files

creaweb
Publicado: 10/04/2012 9:44 am

Excelente el artículo tutorial, muy bien explicado y muy util. Lo probaré.

maria
Publicado: 30/05/2012 3:45 pm

como ahgo paar subir videos con una restricicon de tamaño use el codigo y no sube videos si otrso archivos por favor si tuvieras el codigo o si em podrian colaborar una vez subido el video como podria luego mostrarlo !!

Manuel
Publicado: 04/06/2012 8:10 pm

Hola y si quiero suvir archivos .rar ? ?.
Enviame una respuesta a mi correa.

Muchas gracias por tu aporte.

andres upegui
Publicado: 11/06/2012 2:17 am

hola amigos el tutorial esta excelente muchas gracias una preguntica sabes cual es el metodo para realizar las descargas de los archivos que subo a mi directorio
gracias

Xacobe
Publicado: 30/06/2012 1:45 pm

Bueno queria aportar que convendria en las ultimas lineas agregar:

echo $status;
echo “Tu enlace: http://la-url-de-tu-web/“.$desti no;

Si no el usuario recibe una pantalla en blanco, y no va a saber la url de su archivo debido al prefijo. Saludos :)

carlos
Publicado: 25/07/2012 10:02 am

muchas gracias amigo excelente tutorial.

cleoms
Publicado: 10/09/2012 2:26 pm

excelente aportacion, gracias a todos

xoceunder
Publicado: 10/09/2012 8:59 pm

Saludos muy buen script amigo estaria mejor si le agregaras una bara de proceso de cargas

charlysmit
Publicado: 02/10/2012 3:34 pm

hola es genial el aporte que realizaron ahora la ayuda que nesesito es como almacenar el nombre de la imagen que subi para despues mostrarla. la tabla que tengo sellama (galerias) los campos son idimage,image,seccion gracias saludos

ines
Publicado: 25/10/2012 1:53 am

hola tengo una gran duda , como le puedo hacer para adjuntar un archivo excel y los datos que este contiene , sean insertados en una tabla de mi base de datos . ayuda por favor :(

jose
Publicado: 06/11/2012 4:44 am

Mil Gracias

Rafael
Publicado: 16/07/2013 10:57 am

mm una pregunta si el nombre del archivo tiene espacios como soluciono eso por que capturo el link del así :

http://www.site.com/carpeta/“.$prefijo.”_”.archivo.” pero si el nombre tiene espacios corta el link y no funciona

agradecería tu consejo

Omar Villafuerte Echevarría
Publicado: 31/07/2013 10:29 am

Hola amigos muy bueno que esta el codigo, me resulta muy bueno y nesesario para mi web , lo quiero utilizar para que los usuarios se establescan avatar en el mismo, por lo que nesesito se me pueden publicar como enlazarlo con mi base de datos y establecer q se guarde el enlace de la imagen subida para luego yo poderla mostrar en el sitio a la hora de ver el avatar del usuario . sin mas un saludos in me pueden hacer llegar el codigo ami email le estare agradecido eternamente . ante todo un saludos Omar

email: elwhite@gmail.com

Zozyal
Publicado: 08/08/2013 11:38 pm

buen post gracias.

Upload de Archivos con PHP | Soloblog
Publicado: 12/02/2014 9:28 am

[…] Upload de Archivos con PHP […]

Mario
Publicado: 13/03/2014 6:43 pm

Muchas gracias el código funciona ala perfección,me sirvió bastante.

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)