Foros del Web » Programando para Internet » PHP »

Sobre subri archivos

Estas en el tema de Sobre subri archivos en el foro de PHP en Foros del Web. Hola! Estoy intentando encontrar algun tutorial en donde se explique como crae multiples uploads a un servidor. Lo que intento enontrar es algun codigo que ...
  #1 (permalink)  
Antiguo 14/11/2007, 03:32
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Sobre subri archivos

Hola!

Estoy intentando encontrar algun tutorial en donde se explique como crae multiples uploads a un servidor.
Lo que intento enontrar es algun codigo que me permita abrir el explorador de windows, marcar varios archivos y subirlos al servidor.

Quizas se tnega que realizar con un poco de javasript?
onocen ustedes algun tutorial o script qu permita hacer eso?
  #2 (permalink)  
Antiguo 14/11/2007, 03:57
 
Fecha de Ingreso: octubre-2007
Ubicación: Madrid, España
Mensajes: 221
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Sobre subri archivos

Yo no conozco ningún tutorial pero básicamente consiste en utilizar un formulario con el objeto:
Código HTML:
<input name="archivo" type="file" id="archivo" /> 
el formulario debe ser tipo "multipart/form-data" para que pueda enviar archivos. El formulario más simple para hacer estas cosas sería así:
Código HTML:
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
<input name="archivo" type="file" id="archivo" />
<input type="submit" value="Enviar">
</form> 
Luego hay que hacer la parte en la que se verifica que el archivo esta subido al servidor (inicialmente se sube a la carpeta temporal) y moverlo allí donde quieras guardarlo.

Yo lo hago con PHP de la siguiente forma:

1. Añado una variable de PHP en la propiedad action del formulario que vuelve a cargar esta misma web y añado un objeto oculto en el formulario llamado "enviarArchivo" con el valor "form1" (explicaré su función en el siguiente paso):
Código HTML:
<?php
$enviarForm = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $enviarForm .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
?>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="<?php echo $enviarForm; ?>">
<input name="archivo" type="file" id="archivo" />
<input type="submit" value="Enviar">
<input type="hidden" name="enviarArchivo" value="form1">
</form> 
2. Al pulsar en el boton enviar del formulario se vuelve a cargar esta página con la peculiaridad de que el formulario a enviado la información por el sistema "POST". Así que añadimos a la parte de PHP un nuevo código.

Si esta entrando por "POST" una variable llamada "enviarArchivo" y esta variable tiene como valor "form1" entonces es que la información que esta entrando es nuestro formulario ya rellenado, así que procedemos a verificar que el archivo ha subido correctamente
Código PHP:
"is_uploaded_file($nombre_tmp)" 
Si ha subido correctamente lo movemos a la carpeta que queremos mover
Código PHP:
move_uploaded_file($nombre_tmp$target_path); 
Para realizar este último paso hemos escrito en una variable la raíz deseada, es decir, el lugar donde esta este archivo "getcwd()" más la carpeta en la que queremos guardarlo más la variable $nuevo_nombre que es un nuevo nombre para el archivo sacado de un código de fecha y tiempo codificado que nunca puede repetirse
Código HTML:
<?php
$enviarForm = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $enviarForm .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["enviarArchivo"])) && ($_POST["enviarArchivo"] == "form1")) {
    $nombre = $_FILES['archivo']['name'];
    $nombre_arrai = explode(".", $nombre);
    $nuevo_nombre = md5(uniqid(rand(), true)).".".$nombre_arrai[1];

    $tipo = $_FILES['archivo']['type'];
    $tam = $_FILES['archivo']['size'];
    $nombre_tmp = $_FILES['archivo']['tmp_name'];
    $target_path = getcwd()."/imagenes/";
    $target_path = $target_path . $nuevo_nombre;
    if(is_uploaded_file($nombre_tmp)){
        move_uploaded_file($nombre_tmp, $target_path);
        } else {
            echo "Ha ocurrido un error al subir el archivo";
        }
}

?>
 <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="<?php echo $enviarForm; ?>">
 <input name="archivo" type="file" id="archivo" />
 <input type="submit" value="Enviar">
<input type="hidden" name="enviarArchivo" value="form1">
 </form> 
No se si se me queda algo, si es así comentamelo
  #3 (permalink)  
Antiguo 14/11/2007, 06:25
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Sobre subri archivos

Gracias por la respuesta, pero este script hace exactamente lo que no quiero
Como ves, con este script se puede escoger solamente un archivo a la vez pero no varios.
Mi idea es hacer algo como cuando quieres copiar archivos desde una carpeta a otra en windows . En vez de copiar los archivos uno tras de otro, tu solamente escoges todos los archivos que deseas copiar y los copias todos al mismo tiempo. Algo similar quiero hacer con php, escoger varios archivos de una sola vez y subirlos al servidor, todo juntos sin necesidad de escogerlos uno por uno.
Aqui puedes ver un ejemplo, pero este esta hecho con javascript y flash:

http://www.element-it.com/Examples/A...ultiUpload.htm

saludos
  #4 (permalink)  
Antiguo 14/11/2007, 07:23
 
Fecha de Ingreso: octubre-2007
Ubicación: Madrid, España
Mensajes: 221
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Sobre subri archivos

vale tio pero eso no es php eso es flash y se hace con la clase FileReference concretamente con FileReference.browse()

------------------------------------ EDITADO ------------------------------------
De todas formas uedes hacerlo tambien en PHP metiendo los archivos seleccionados en un array para luego subirlos todos a la vez

------------------------------------ EDITADO ------------------------------------

Última edición por dualklip; 14/11/2007 a las 07:32
  #5 (permalink)  
Antiguo 14/11/2007, 08:02
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Sobre subri archivos

ok, gracias por la aclaracion. Estoy recien comenzando con php asi que no tengo mucha idea de como funciona.
tienes algun ejemplo de como hacer el array?
Gracias

Estuve pensando unos segundos, sobre lo del array.
Es posible que los archivos seleccionados se guarden en un array pero es el mismo <input> que no permite seleccionar varios archivos al mismo tiempo. O me equivoco?
  #6 (permalink)  
Antiguo 14/11/2007, 08:16
 
Fecha de Ingreso: octubre-2007
Ubicación: Madrid, España
Mensajes: 221
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Sobre subri archivos

Exacto, en principio hay que seleccionar los archivo uno a uno, pero tiene que haber alguna manera de hacer una multiselección. Dejame averiguar un poco y si encuentro algo te lo digo
  #7 (permalink)  
Antiguo 14/11/2007, 08:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Sobre subri archivos

No puede hacerse.
Habría que hacerlo en Java(que no javascript) o Flash, y con los permisos necesarios del usuario.
  #8 (permalink)  
Antiguo 14/11/2007, 08:54
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Sobre subri archivos

ok, vere si encuentro algo en flash
Gracias de todos modos
  #9 (permalink)  
Antiguo 14/11/2007, 09:36
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Sobre subri archivos

es posible haciendo campos dinamicos con javascript, para luego tomarlos en un array y subir ...
__________________
Nuevamente a las pistas ...
  #10 (permalink)  
Antiguo 14/11/2007, 10:57
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Sobre subri archivos

Y como se hace eso??
  #11 (permalink)  
Antiguo 14/11/2007, 15:30
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Sobre subri archivos

http://www.buayacorp.com/archivos/en...-estilo-gmail/

saludos!!
__________________
Nuevamente a las pistas ...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:18.