Foros del Web » Programando para Internet » PHP »

como envio archivos con PHP

Estas en el tema de como envio archivos con PHP en el foro de PHP en Foros del Web. wuenas tengo un pequeño problemilla he creado un formulario en dreamwever y los datos los envio con php, no tengo ningun problema por eso si ...
  #1 (permalink)  
Antiguo 02/06/2010, 18:58
BAT
 
Fecha de Ingreso: enero-2008
Mensajes: 258
Antigüedad: 16 años, 3 meses
Puntos: 0
como envio archivos con PHP

wuenas tengo un pequeño problemilla he creado un formulario en dreamwever y los datos los envio con php, no tengo ningun problema por eso si llegan bien, el problema esta en que tengo que enviar archivos junto con el formulario el formulario lo pueden checar en http://www.netmodel.mx/tufoto.html y el codigo que use para el envio de archivos es :
Cita:
<script type="text/javascript">
var numero = 0;

// Funciones comunes
c= function (tag) { // Crea un elemento
return document.createElement(tag);
}
d = function (id) { // Retorna un elemento en base al id
return document.getElementById(id);
}
e = function (evt) { // Retorna el evento
return (!evt) ? event : evt;
}
f = function (evt) { // Retorna el objeto que genera el evento
return evt.srcElement ? evt.srcElement : evt.target;
}

addField = function () {
container = d('files');

span = c('SPAN');
span.className = 'file';
span.id = 'file' + (++numero);

field = c('INPUT');
field.name = 'archivos[]';
field.type = 'file';

a = c('A');
a.name = span.id;
a.href = '#';
a.onclick = removeField;
a.innerHTML = 'Quitar';

span.appendChild(field);
span.appendChild(a);
container.appendChild(span);
}
removeField = function (evt) {
lnk = f(e(evt));
span = d(lnk.name);
span.parentNode.removeChild(span);
}
</script>
Espero me puedan ayudar
  #2 (permalink)  
Antiguo 02/06/2010, 21:18
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: como envio archivos con PHP

Hola
bueno, imagino que lo que quieres hacer es agregar esos file por función javascript si mal no entiendo, en cuyo caso te sería mejor que algún moderador te mueva el tema a javascript

Sin embargo pregunto, ya intentaste poniendo los file con el tag tradicional?

Código HTML:
Ver original
  1. <input type='file' name='archivo1'>

y te funciona? si es así, entonces es más que seguro que necesitas
el foro js

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 02/06/2010, 23:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: como envio archivos con PHP

Si aceptas sugerencias... creo que seria mas conveniente tener por separado el registro de usuarios y la subida de fotos.

Que pasa si un usuario sube 5 fotos, pero no lleno correctamente el formulario? Guardas las fotos en una carpeta temporal o debe repetir nuevamente todo el proceso?
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 03/06/2010, 17:06
BAT
 
Fecha de Ingreso: enero-2008
Mensajes: 258
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: como envio archivos con PHP

Gracias por contestar, en realidad lo que se pretende es que sean 20 archivos en formato jpg los que un usuario pueda ingresar y que todo esto llegue a una cuenta de correo y quien reciba el correo se encargue de seleccionar las imágenes, se pensó en un principio crear cuentas de usuarios pero se pensó que seria mas engorroso para los usuario y la forma de administrar el $$$ por lo que se descarto esa idea ( ya el tiempo dirá) el script que coloco es el que ocupe para ir sacando campos de inserción de archivos, esto con el fin de no tener los 20 campos estorbando, o si tienen alguna idea mejor es bien recibida.
  #5 (permalink)  
Antiguo 03/06/2010, 19:48
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: como envio archivos con PHP

Cita:
Iniciado por BAT Ver Mensaje
Gracias por contestar, en realidad lo que se pretende es que sean 20 archivos en formato jpg los que un usuario pueda ingresar y que todo esto llegue a una cuenta de correo y quien reciba el correo se encargue de seleccionar las imágenes, se pensó en un principio crear cuentas de usuarios pero se pensó que seria mas engorroso para los usuario y la forma de administrar el $$$ por lo que se descarto esa idea ( ya el tiempo dirá) el script que coloco es el que ocupe para ir sacando campos de inserción de archivos, esto con el fin de no tener los 20 campos estorbando, o si tienen alguna idea mejor es bien recibida.
Hola
Y porque no sugerirle al usuario que comprima las imagenes en un zip?
o que cosas adicionales hacen con esas imagenes?
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 03/06/2010, 20:08
BAT
 
Fecha de Ingreso: enero-2008
Mensajes: 258
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: como envio archivos con PHP

Wuenas, doy gracias por las respuestas y sugerencias que dan y respondo tu sugerencia mortiprogramador esa fue la primera sugerencia que se les dio, sin embargo es un sitio de modelos (chicas guapas) y pues de guapas tendrán mucho pero la mayoría no saben que es un archivo zip, buscando en internet encontré exactamente lo que estoy buscando pero cuando realice una prueba al parecer lo mando a algún directorio del servidor, busque los archivos y no los encontré por eso estoy aquí para que me puedan ayudar y me puedan decir cómo le ago. Para que lleguen a una cuenta de correo.
SE LOS AGRADECE UNA PERSONA APUNTO DEL SUICIDIO

ESTE ES EL FORMULARIO DE PRUEBA

Cita:
<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>
Y ESTE EL SCRIPT

Cita:
<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 EL PHP

Cita:
<?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 />");
}
}
?>
  #7 (permalink)  
Antiguo 03/06/2010, 20:46
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: como envio archivos con PHP

Hola
jajajaja me perdi con ese apunte del APUNTO DEL SUICIDIO, acuerdate
de los espacios, quisiste decir A PUNTO

bueno, ya lo probe, y crea un directorio tmp dentro de htdocs (lo estoy probando en servidor local) y sube archivos tmp con 0 kb la primera vez.
lo volvi a probar pero ya no funciono más

así que tal vez el inconveniente esta en el upload, hace poco
estuve involucrado en un post que tocaba el tema, lo busco y edito este

aquí esta

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #8 (permalink)  
Antiguo 04/06/2010, 21:05
BAT
 
Fecha de Ingreso: enero-2008
Mensajes: 258
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: como envio archivos con PHP

Wuenas, Agradezco sinceramente tu tiempo y continuo en el proceso de investigar por la red alguna solución a mi problema MIL GRACIAS

Etiquetas: envio
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 17:31.