A veces queremos subir archivos al servidor usando http a través de un formulario, normalmente creamos un campo tipo file y listo, pero en ocasiones queremos subir múltiples archivos, como es el caso de los archivos adjuntos de los mail, es hay donde un solo campo se nos hace ineficiente y engorroso, pues requiere que se envide de uno en uno los archivos, podríamos simplemente crear unos 5 campos file pero, que tal si el usuario quiere subir mas o menos archivos? estaríamos fosando al usuario a recargar la pagina varias veces, o desperdiciaríamos espacio, en cada caso respectivamente. Una solución elegante es la que vemos en el método de adjuntar archivos de gmail, que dando click en un enlace nos crea un nuevo campo file listo para adjuntar un nuevo archivo, esto se puede lograr usando javascript, y procesando con php lo recibido por el servidor. A continuación veremos un aproximación de como lograr resultados similares:
Primero veamos el html del formulario, sencillo solo lo necesario para subir archivos:
Código :
<form name="formu" id="formu" action="upload.php" method="post" enctype="multipart/form-data"> <dl> <dt><label>Archivos a Subir:</label></dt> <!-- Esta div contendrá todos los campos file que creemos --> <dd><div id="adjuntos"> <!-- Hay que prestar atención a esto, el nombre de este campo debe siempre terminar en [] como un vector, y ademas debe coincidir con el nombre que se da a los campos nuevos en el script --> <input type="file" name="archivos[]" /><br /> </div></dd> <dt><a href="#" onClick="addCampo()">Subir otro archivo</a></dt> <dd><input type="submit" value="Enviar" id="envia" name="envia" /></dd> </dl> </form>
Ahora vamos con el javascript, este es el corazón de este truco, y se encarga de crear los campos dinamicos:
Código :
<script type="text/javascript"> var numero = 0; //Esta es una variable de control para mantener nombres //diferentes de cada campo creado dinamicamente. evento = function (evt) { //esta funcion nos devuelve el tipo de evento disparado return (!evt) ? event : evt; } //Aqui se hace lamagia... jejeje, esta funcion crea dinamicamente los nuevos campos file addCampo = function () { //Creamos un nuevo div para que contenga el nuevo campo nDiv = document.createElement('div'); //con esto se establece la clase de la div nDiv.className = 'archivo'; //este es el id de la div, aqui la utilidad de la variable numero //nos permite darle un id unico nDiv.id = 'file' + (++numero); //creamos el input para el formulario: nCampo = document.createElement('input'); //le damos un nombre, es importante que lo nombren como vector, pues todos los campos //compartiran el nombre en un arreglo, asi es mas facil procesar posteriormente con php nCampo.name = 'archivos[]'; //Establecemos el tipo de campo nCampo.type = 'file'; //Ahora creamos un link para poder eliminar un campo que ya no deseemos a = document.createElement('a'); //El link debe tener el mismo nombre de la div padre, para efectos de localizarla y eliminarla a.name = nDiv.id; //Este link no debe ir a ningun lado a.href = '#'; //Establecemos que dispare esta funcion en click a.onclick = elimCamp; //Con esto ponemos el texto del link a.innerHTML = 'Eliminar'; //Bien es el momento de integrar lo que hemos creado al documento, //primero usamos la función appendChild para adicionar el campo file nuevo nDiv.appendChild(nCampo); //Adicionamos el Link nDiv.appendChild(a); //Ahora si recuerdan, en el html hay una div cuyo id es 'adjuntos', bien //con esta función obtenemos una referencia a ella para usar de nuevo appendChild //y adicionar la div que hemos creado, la cual contiene el campo file con su link de eliminación: container = document.getElementById('adjuntos'); container.appendChild(nDiv); } //con esta función eliminamos el campo cuyo link de eliminación sea presionado elimCamp = function (evt){ evt = evento(evt); nCampo = rObj(evt); div = document.getElementById(nCampo.name); div.parentNode.removeChild(div); } //con esta función recuperamos una instancia del objeto que disparo el evento rObj = function (evt) { return evt.srcElement ? evt.srcElement : evt.target; } </script>
Y por ultimo tenemos la contraparte php (upload.php, el destino del formulario), que se encargara de procesar lo que enviemos al servidor, este es solo un pequeño ejemplo de como operar los archivos y hacer lo que necesiten con ellos:
Código :
<?php //Preguntamos si nuetro arreglo 'archivos' fue definido if (isset ($_FILES["archivos"])) { //de se asi, para procesar los archivos subidos al servidor solo debemos recorrerlo //obtenemos la cantidad de elementos que tiene el arreglo archivos $tot = count($_FILES["archivos"]["name"]); //este for recorre el arreglo for ($i = 0; $i < $tot; $i++){ //con el indice $i, poemos obtener la propiedad que desemos de cada archivo //para trabajar con este $tmp_name = $_FILES["archivos"]["tmp_name"][$i]; $name = $_FILES["archivos"]["name"][$i]; echo("<b>Archivo </b> $key "); echo("<br />"); echo("<b>el nombre original:</b> "); echo($name); echo("<br />"); echo("<b>el nombre temporal:</b> \n"); echo($tmp_name); echo("<br />"); } } ?>
Bien con esto es suficiente para que creen los campos dinámicos de upload y los procesen en su servidor, esto es útil cuando no sabemos cuantos serán (como en gmail, jejeje), y otras muchas ocasiones donde necesitamos crear campos dinámicamente. Saludos
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Freddie el 15 de Diciembre de 2006
Por Mukongo el 15 de Diciembre de 2006
Por ego el 16 de Diciembre de 2006
pero como armom todo esto??
me sirve mucho...
pero no se que archivos crear..
Por pichichi el 18 de Diciembre de 2006
Por Yranac el 18 de Diciembre de 2006
Por EmiR el 18 de Diciembre de 2006
Saludos pichichi, he revisado y.... MALDITO IE....arrgg.. tienes razón... no funciona, voy a revisar por que no se le da la gana de funcionar a este intento de navegador de nuestro amigo B... malditasea.... bueno lo revisare y buscare una solución, cuando la tenga posteare la corrección o de ser posible, sea colocada en el post original, Gracias por avisar. Saludos...
PD. Ya he probado en Opera y funciona ok...
Por EmiR el 18 de Diciembre de 2006
Código :
Y eso es todo, lo probé en ie6, supongo que debe funcionar igual en el 7... si encuentran otra falla no duden en comentar. Saludos.
PD: Freddie®, seria buena idea editar mi post original y colocar la corrección? o es mejor dejarla aquí?
Por Diego el 31 de Diciembre de 2006
subi dos archivos al directorio "reglamentos" para que lo que suba se guarde ahi.
subir_estadistica.php (donde tengo e script y el form)
upload.php (donde tengo el codigo php)
el problema es que no me sube nada al servidor me lo ejecuta por que me pone es siguiente texto:
Archivo
el nombre original: prueba.txt
el nombre temporal: /var/tmp/phpW1a4Cu
Lo probe en explorer y firefox y los dos me hace lo mismo pero no me lo sube.
QUE ESTOY HACIENDO MAL?? LO QUE NO HICE NUNCA ES DARLE LA DIRECCION DONDE LLO QUIERO SUBIR, ESO ES NECESARIO?
Bueno esperouna ayuda ya que me sirve muchisimo este formato de formulario.
Gracias de antemano
SAludos
Diego
Por Kezern el 01 de Enero de 2007
Por EmiR el 02 de Enero de 2007
Código :
Es en esa sección de código, donde podemos "trabajar con el archivo", es decir copiarlo, editarlo, enviarlo como adjunto por mail... u otras muchas cosas que se desee hacer con los archivos subidos al servidor por este medio, pues como esta el script, todo el proceso que realizamos sobre el archivo es obtener su nombre temporal en el servidor, y el nombre original con el que lo envió el usuario, imprimirlos nombre y ya... por tanto, les dejo de tarea que pongan manos a la obra, encuentren un buen punto del código (que no creo que les sea difícil) donde realizar el trabajo que deseen con sus archivos recién subidos al servidor... (si, "trabajo" en su caso es sinónimo de copiarlos a la ubicación deseada). Vamos... no es complicado, no quise poner un ejemplo completamente funcional, para 'obligarlos' a entender el código, y así pudieran modificarlo para suplir sus necesidades especificas, y de paso aprendieran.Kezern, tienes razón, move_uploaded_file(); es una forma comun para mover los archivos de la carpeta temporal del servidor a una ubicación deseada. lean la documentación de esta función en www.php.net. Saludos.
Por luis rojas el 02 de Enero de 2007
gracias
Por FLORECITA el 08 de Enero de 2007
Por La100rra el 08 de Enero de 2007
Por Gilberto Quevedo Cas el 08 de Enero de 2007
Por Pablo el 09 de Enero de 2007
Gracias igual por el tema, lo utilizaré en otra web
Por dieste el 21 de Enero de 2007
Por mariobj el 22 de Enero de 2007
me explico campos de texto y dropdown lists
gracias, el script es muy bueno
Por Beatriz el 23 de Enero de 2007
Por Maguano el 05 de Febrero de 2007
Por Espartacus el 28 de Febrero de 2007
Por luisa el 08 de Marzo de 2007
Por Engi el 09 de Marzo de 2007
if ($HTTP_POST_FILES["ruta_imagen"]){
$tot = count($_FILES["ruta_imagen"]["name"]);
for ($i = 0; $i < $tot; $i ){
$nombre_archivo = "image/" . $HTTP_POST_FILES['ruta_imagen']['name'][$i];
$tipo_archivo = $HTTP_POST_FILES['ruta_imagen']['type'][$i];
$tamano_archivo = $HTTP_POST_FILES['ruta_imagen']['size'][$i];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg"))
Por Engi el 09 de Marzo de 2007
if ($HTTP_POST_FILES["ruta_imagen"]){
$tot = count($_FILES["ruta_imagen"]["name"]);
for ($i = 0; $i < $tot; $i ){
$nombre_archivo = "image/" . $HTTP_POST_FILES['ruta_imagen']['name'][$i];
$tipo_archivo = $HTTP_POST_FILES['ruta_imagen']['type'][$i];
$tamano_archivo = $HTTP_POST_FILES['ruta_imagen']['size'][$i];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg"))
Por Engi el 09 de Marzo de 2007
Por Engi el 09 de Marzo de 2007
Por cyper el 14 de Marzo de 2007
no se si lo tienes colgado un zip de los archivos en alguna parte.
Gracias Engi_blog
Por Andrés el 16 de Marzo de 2007
Por el_grafiti el 27 de Marzo de 2007
Por Pedromi el 04 de Abril de 2007
Lo del php sonde se pone en upload.php o en la página en la que pongo el formulario y el javascript??.
Otra pregunta:
como puedo hacer para que lo archivos se envien al ftp??, y como despues puedo descargarmelos???.
Espero que no sea tanta molestia reponder todo y gracias anticipadas
Por Andy el 18 de Abril de 2007
Por Sisco el 18 de Abril de 2007
Por carlos el 04 de Mayo de 2007
Por DriverOp el 06 de Mayo de 2007
Ahora para el tema de encontrar los archivos subidos al servidor lo que se debe hacer luego de corroborar que el archivo subido por el usuario está en el directorio temporal del servidor es moverlo de allí a alguna parte de nuestro directorio home. Todo esto se hace con PHP.
Voy a suponer que queremos mover los archivo al sirectorio "subidos" de nuestro home.
A continuación de haberse establecido el valor de las variables $tmp_name y $name y estando dentro del ciclo "for" agregar...
Código :
Y eso es todo.
Este código acepta cualquier archivo, en el caso que quiéramos restringir a algún tipo de archivo en particular (es MUY MALA IDEA dejar que suban archivos con extensión .php) les dejo una forma simple de saber la extensión del archivo:
Código :
Por juan el 24 de Mayo de 2007
pero en esto de los archivos me interesaria saber como se puede subir un archivo sin tener que explorarlo, solo con la ruta completa del fichero por ejemplo "c:\documento.doc" todo en el php.
se puede ?
gracias
Por Andres el 03 de Junio de 2007
Por John el 19 de Junio de 2007
Por CreationsDv el 27 de Junio de 2007
Por cayo el 19 de Julio de 2007
Por CreationsDvd.com el 23 de Julio de 2007
Por diana el 24 de Julio de 2007
Por diana el 24 de Julio de 2007
Por Rast el 16 de Agosto de 2007
En sintesis, necesito realizar algo muy similar pero con cuadros de textos y guardar sus valores en un arreglo que mostraré.
Muchas gracias y disculpen las molestias
Por Manel el 03 de Septiembre de 2007
Por mrsmock el 12 de Septiembre de 2007
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
echo "Yahoo!!!.";
}else{
echo "Oops!!!";
}
Por Hola el 12 de Octubre de 2007
Por Cesar el 12 de Octubre de 2007
Por danielorlando el 10 de Noviembre de 2007
Por danielornado el 10 de Noviembre de 2007
Por Sebastian el 28 de Diciembre de 2007
Por Oscar el 17 de Enero de 2008
Por HOOVER el 03 de Febrero de 2008
Por Miquel el 08 de Febrero de 2008
Mi problema es que en Firefox me funciona perfectamente, pero en IE 7 no hace absolutamente nada al pinchar en "Subir archivos"
No aparece el nuevo campo.
Lo he solucionado instalando Firefox en la oficina en la que van a hacer funcionar la subida, pero me gustaria que funcionara también en IE7
Gracias
Por CUIDA el 22 de Febrero de 2008
evt = evento(evt);
/* aki estama la llamada mal : nCampo = rObj(evt); no es esto es asi=> */
nCampo = eventorObj(evt);
div = document.getElementById(nCampo.name);
div.parentNode.removeChild(div);
}
Por Dante el 30 de Mayo de 2008
Cual seria el Cósdigo del lado del servidor para almacenar estas imágenes en una base de datos???
Por ale el 19 de Junio de 2008
Por Picas el 03 de Julio de 2008
Por yop el 25 de Julio de 2008
Por ANA el 25 de Julio de 2008
Por CARLOS_Z el 10 de Septiembre de 2008
Por Rafael el 11 de Septiembre de 2008
Por [email protected] el 17 de Septiembre de 2008
//de se asi, para procesar los archivos subidos al servidor solo debemos recorrerlo
//obtenemos la cantidad de elementos que tiene el arreglo archivos
$tot = count($_FILES["archivos"]["name"]);
//este for recorre el arreglo
for ($i = 0; $i < $tot; $i++){
//con el indice $i, poemos obtener la propiedad que desemos de cada archivo
//para trabajar con este
$tmp_name = $_FILES["archivos"]["tmp_name"][$i];
$name = $_FILES["archivos"]["name"][$i];
$path= "upload/".$HTTP_POST_FILES['archivos']['name'][$i];
if(copy($_FILES["archivos"]["tmp_name"][$i], $path))
{
echo "Successful<BR/>";
echo "File Name :".$HTTP_POST_FILES["archivos"]['name'][$i]."<BR/>";
echo "File Size :".$HTTP_POST_FILES["archivos"]['size'][$i]."<BR/>";
echo "File Type :".$HTTP_POST_FILES["archivos"]['type'][$i]."<BR/>";
echo "<img src=\"$path\" width=\"150\" height=\"150\">";
}
else
{
echo "Error";
}
echo("<b>Archivo </b> $key ");
echo("<br />");
echo("<b>el nombre original:</b> ");
echo($name);
echo("<br />");
echo("<b>el nombre temporal:</b> \n");
echo($tmp_name);
echo("<br />");
}
}
Por AYUDA........... el 28 de Septiembre de 2008
<HTML>
<HEAD> <TITLE> NUMERO DE HIJOS </TITLE> </HEAD>
<form action="CONVERSION2.php" method="get">
<BODY>
<!--**************************************************************** -->
<TABLE ALIGN="CENTER" WIDTH=5 HEIGHT=5 CELLSPACING=1 CELLPADDING=1 BORDER=1 BGCOLOR="11133F">
<TR> <TD BGCOLOR=BLUE COLSPAN=5 ALIGN="CENTER"> <B> H I J O S </B>
NUMERO DE HIJOS <SELECT NAME="numhijos" SIZE="1">
<OPTION SELECT VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="3">3
<OPTION VALUE="4">4
<OPTION VALUE="5">5
<OPTION VALUE="6">6
<OPTION VALUE="7">7
<OPTION VALUE="8">8
<OPTION VALUE="9">9
<OPTION VALUE="10">10
<OPTION VALUE="11">11
<OPTION VALUE="12">12
<OPTION VALUE="13">13
<OPTION VALUE="14">14
<OPTION VALUE="15">15
</FORM>
</TD> </TR>
<!----------------------------------------DATOS DE HIJO ---------------------------------------->
<TR> <TD ALIGN="CENTER"> NOMBRE: <INPUT TYPE="TEXT" NAME="NOMBRE[A]" SIZE=30> </TD>
<TD ALIGN="CENTER">EDAD: <INPUT TYPE="TEXT" NAME="EDAD[A]" SIZE=5></TD>
<TD ALIGN="CENTER">ESCOLARIDAD: <INPUT TYPE="TEXT" NAME="ESCOLARIDAD[A]" SIZE=30></TD>
<TD ALIGN="CENTER"> Tiempo de casad@: <INPUT TYPE="TEXT" NAME="TIEMPOCASA[A]"> </TD>
<TR >
<TD COLSPAN=5 ALIGN="LEFT">
<INPUT TYPE="RADIO" NAME="BAUTIZO[A]" VALUE="Bautizo"> Bautismo
<INPUT TYPE="RADIO" NAME="CONFIRMACION[A]" VALUE="Confirmacion"> Confirmación
<INPUT TYPE="RADIO" NAME="COMUNION[A]" VALUE="Comunion"> 1° Comunión
<INPUT TYPE="RADIO" NAME="BODA[A]" VALUE="Boda"> Boda Eclesial
<INPUT TYPE="RADIO" NAME="CIVIL[A]" VALUE="Civil"> Boda al Civil
<INPUT TYPE="RADIO" NAME="UNION[A]" VALUE="Union"> Unión Libre
</TD>
</TR>
</TR>
</TABLE>
</BODY>
</HTML>
lo que necesito es que a partir de <!----------------------------------------DATOS DE HIJO ----------------------------------------> se repita n veces de acuerdo al <SELECT NAME="numhijos"...........
Como le puedo hacer......no se como soy apenas principiante....
se que debe ser similar al upload de varios archivos....pero como?
Por martin0341 el 03 de Noviembre de 2008
Alguien sabe pq tengo este problema??
Gacias por su ayuda
Por Daniel Moscarella Z el 24 de Febrero de 2009
Gracias por el codigo, esta re util. Triste por las personas que les servia el código en firefox y no en IE7 y viceversa. Yo embrujé tanto el formulario y el php en el mismo upload.php.
Por Agustin el 25 de Febrero de 2009
Por shadow el 11 de Marzo de 2009
Por paola el 11 de Marzo de 2009
Gracias de antemano muy amables
Por marcos el 08 de Junio de 2009
Por luzalcuadrado el 08 de Julio de 2009
Por Ed el 01 de Agosto de 2009
Por jose el 19 de Agosto de 2009
Por panoti el 09 de Septiembre de 2009
Por munrraa el 09 de Octubre de 2009
Por jhaley el 04 de Enero de 2010
Estuve probando y no me da ningun inconveniente a la hora de manejar archivos pequeños (< 1MB) pero cuando manejo archivos mas grandes (> 1MB y < 20MB) no funciona, revise la configuracion en PHP.ini, pero esta con un limite de 20MB. Agradeceria mucho su ayuda.
Por loreley_ el 03 de Febrero de 2010
Por gcastilo_2009 el 22 de Marzo de 2010
Por camilo el 22 de Marzo de 2010
Por Pablo el 23 de Marzo de 2010
Saludos
Por sol el 27 de Mayo de 2010
Por Roberto el 27 de Mayo de 2010
Por mcswebsis el 30 de Mayo de 2010
¿como podria limitar a que solo se suban 5 archivos en lugar de n?
y
¿como hago para guardar en una base de datos el nombre del archivo en mi caso una foto para despues mostrarlas?
Por David el 04 de Junio de 2010
Por Tyrone el 05 de Julio de 2010
Por Jose_Arg el 13 de Julio de 2010
Por lamomiabmx el 26 de Agosto de 2010
Por jaqueline olmos el 18 de Enero de 2011
la forma o se crea un nuevo archivo.
son mis inicios y existen cosas que no domino
gracias
Por hassan mohamed ali el 27 de Enero de 2011
Por Max el 25 de Febrero de 2011
Por jhonse el 29 de Marzo de 2011
Por luis el 13 de Abril de 2011
La solución es súper ligera, muy elegante y súper adaptable a los estilos que desee manejar, muchas gracias.
Por Fran el 16 de Abril de 2011
Por eapalacio el 09 de Junio de 2011
<?php
// este php lee clave de acceso en un archivo plano que se llama passwords.txt
// dentro lo ponés tantas lineas como usuarios querás adicionar asi: (le quitas las diagonales)
// usuario|laclavequequieras
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
session_start();
echo 'La sesión actual es: '.session_id();
exit;
}
$fich = file("passwords.txt");
$i=0; $validado=false;
while ($fich[$i] && !$validado) {
$campo = explode("|",$fich[$i]);
if (($PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
$i++;
}
if (!$validado) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
echo $PHP_AUTH_USER;
echo $PHP_AUTH_PW;
exit;
}
?>
<?php
//Preguntamos si nuetro arreglo 'archivos' fue definido
if (isset ($_FILES["archivos"])) {
//de se asi, para procesar los archivos subidos al servidor solo debemos recorrerlo
//obtenemos la cantidad de elementos que tiene el arreglo archivos
$tot = count($_FILES["archivos"]["name"]);
//este for recorre el arreglo
for ($i = 0; $i < $tot; $i++){
//con el indice $i, poemos obtener la propiedad que desemos de cada archivo
//para trabajar con este
$tmp_name = $_FILES["archivos"]["tmp_name"][$i];
$name = $_FILES["archivos"]["name"][$i];
echo("<b>Archivo </b> $key ");
echo("<br />");
echo("<b>el nombre original:</b> ");
echo($name);
echo("<br />");
echo("<b>el nombre temporal:</b> \n");
echo($tmp_name);
echo("<br />");
$newfile = "uploads/".$name;
if (is_uploaded_file($tmp_name)) {
echo "El archivo".$newfile." fue subido con exito.";
if (!copy($tmp_name,"$newfile")) {
print "Error en transferencia de archivo.";
exit();
} // if copy
} // if is_up...
}
}
?>
<html>
<head>
<script type="text/javascript">
var numero = 0; //Esta es una variable de control para mantener nombres
//diferentes de cada campo creado dinamicamente.
evento = function (evt) { //esta funcion nos devuelve el tipo de evento disparado
return (!evt) ? event : evt;
}
//Aqui se hace lamagia... jejeje, esta funcion crea dinamicamente los nuevos campos file
addCampo = function () {
//Creamos un nuevo div para que contenga el nuevo campo
nDiv = document.createElement('div');
//con esto se establece la clase de la div
nDiv.className = 'archivo';
//este es el id de la div, aqui la utilidad de la variable numero
//nos permite darle un id unico
nDiv.id = 'file' + (++numero);
//creamos el input para el formulario:
nCampo = document.createElement('input');
//le damos un nombre, es importante que lo nombren como vector, pues todos los campos
//compartiran el nombre en un arreglo, asi es mas facil procesar posteriormente con php
nCampo.name = 'archivos[]';
//Establecemos el tipo de campo
nCampo.type = 'file';
//Ahora creamos un link para poder eliminar un campo que ya no deseemos
a = document.createElement('a');
//El link debe tener el mismo nombre de la div padre, para efectos de localizarla y eliminarla
a.name = nDiv.id;
//Este link no debe ir a ningun lado
a.href = '#';
//Establecemos que dispare esta funcion en click
a.onclick = elimCamp;
//Con esto ponemos el texto del link
a.innerHTML = 'Eliminar';
//Bien es el momento de integrar lo que hemos creado al documento,
//primero usamos la función appendChild para adicionar el campo file nuevo
nDiv.appendChild(nCampo);
//Adicionamos el Link
nDiv.appendChild(a);
//Ahora si recuerdan, en el html hay una div cuyo id es 'adjuntos', bien
//con esta función obtenemos una referencia a ella para usar de nuevo appendChild
//y adicionar la div que hemos creado, la cual contiene el campo file con su link de eliminación:
container = document.getElementById('adjuntos');
container.appendChild(nDiv);
}
//con esta función eliminamos el campo cuyo link de eliminación sea presionado
elimCamp = function (evt){
evt = evento(evt);
nCampo = rObj(evt);
div = document.getElementById(nCampo.name);
div.parentNode.removeChild(div);
}
//con esta función recuperamos una instancia del objeto que disparo el evento
rObj = function (evt) {
return evt.srcElement ? evt.srcElement : evt.target;
}
</script>
</head>
<body>
<form name="formu" id="formu" action="<? echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
<dl>
<dt><label>Archivos a Subir:</label></dt>
<!-- Esta div contendrá todos los campos file que creemos -->
<dd><div id="adjuntos">
<!-- Hay que prestar atención a esto, el nombre de este campo debe siempre terminar en []
como un vector, y ademas debe coincidir con el nombre que se da a los campos nuevos
en el script -->
<input type="file" name="archivos[]" /><br />
</div></dd>
<dt><a href="#" onClick="addCampo()">Subir otro archivo</a></dt>
<dd><input type="submit" value="Enviar" id="envia" name="envia" /></dd>
</dl>
</form>
</body>
</html>
Por sam el 19 de Junio de 2011
Por Alan el 25 de Junio de 2011
Por mok el 06 de Julio de 2011
Por mexman el 12 de Julio de 2011
Por mexman el 12 de Julio de 2011
No se olviden de visitar http://amin.ol-e.com.mx
subiere algo al respecto...
saludos
Por BBINITO el 28 de Julio de 2011
alguien puede ayudarme? mi coreo es [email protected]
Por Andres el 15 de Octubre de 2011
Por pepe el 18 de Octubre de 2011
Por Rutame el 22 de Octubre de 2011
¿alguien sabe como se podría hacer?
Por Cesar el 01 de Noviembre de 2011
Por broxs el 16 de Noviembre de 2011
Por andrea el 25 de Noviembre de 2011
si alguien m ayuda con el codigo porfavor
Por Crackerness el 05 de Enero de 2012
1) Subía "N" archivos (igual creando campo dinamicamente).
2) Movía las imagenes (jpeg, gif, png) a la carpeta establecida.
3) Guardaba el nombre de la imagen en una base de datos, para relacionarla a la información.
Por ejemplo:
Subía información de una empresa, y le anexaba copias de N documentos (aquí el fileuploader). Y la información en dos tablas:
1 tabla con info de la empresa.
1 tabla con info de las imagenes subidas (copias de documentos).
Ambas tablas relacionadas por el id de la empresa. Para saber a que empresa pertenecian los archivos subidos y despues desplegarlos en una consulta.
Por errores de respaldos perdí ese sistemita, y ahora me veo en la necesidad de volverlo a programar.
Y para no empezar de cero, este código me ha ayudado mucho, puesto que la parte que no recordaba como hacer era la más intersante, la del fileuploader con N archivos.
Así que no me queda más que agradecer, ya que ahora puedo avanzar con el sistema sin tener que empezar de cero.
Para mi caso de aplicación estoy basándome en este código al que le faltaría:
1) Validar que solo puedan subir imagenes (gif, jpg, png)
2) Los limites de max file size.
entre otras cosas.. pero bueno en eso estoy trabajando.
Saludos.
Por Raquel el 19 de Enero de 2012
Por ktimporta el 21 de Enero de 2012
Por wilson el 16 de Febrero de 2012
facil de entender, sencillo y muy util, buenisimo! me cayo como anillo al dedo ahora que lo necesitaba, gracias
Por duby el 19 de Febrero de 2012
Por Rozitta el 23 de Febrero de 2012
Por FERNANDO el 02 de Marzo de 2012
Por leandro71 el 20 de Abril de 2012
Por alejandra el 21 de Mayo de 2012
nombre temporal: C:\xampp\tmp\php131.tmp
pero no esta hay me podrías ayudar
o como le hago para enviarlo a una carpeta especifica
Por alejandro yuniq el 13 de Febrero de 2013
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
$ruta="imagenes";
$archivo=$_FILES['files[]']['tmp_name'];
$nombreArchivo=$_FILES['files[]']['name'];
move_uploaded_file($archivo,$ruta."/".$nombreArchivo);
$ruta=$ruta."/".$nombreArchivo;
$insertSQL = sprintf("INSERT INTO archivos (archivo_url, id_imagen_correo) VALUES (%s, %s)",
GetSQLValueString($ruta, "text"),
GetSQLValueString($_POST['correo'], "int"));
mysql_select_db($database_comunicacion, $comunicacion);
$Result1 = mysql_query($insertSQL, $comunicacion) or die(mysql_error());
}
Por Benjamin el 27 de Febrero de 2013
Por juanvc123 el 15 de Marzo de 2013
Por elistraus el 16 de Septiembre de 2013
Saludos desde chile
Por mogly el 04 de Enero de 2014
Por lamus el 11 de Enero de 2014
Por Christian Alvarado el 30 de Mayo de 2014
Por Figardi el 21 de Julio de 2014
Saludos Fidel
Por Luber Marin el 01 de Junio de 2015
Por Luberney el 01 de Junio de 2015
Por ricardo.gonzalez el 12 de Septiembre de 2015