Foros del Web » Programando para Internet » PHP »

PHP - adjuntar archivos en un formulario

Estas en el tema de PHP - adjuntar archivos en un formulario en el foro de PHP en Foros del Web. Hola, Espero que puedan ayudarme a resolver una duda. He estado preparando un formulario en mi página web para que la gente me envie informacion ...
  #1 (permalink)  
Antiguo 21/09/2006, 08:04
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
PHP - adjuntar archivos en un formulario

Hola,

Espero que puedan ayudarme a resolver una duda. He estado preparando un formulario en mi página web para que la gente me envie informacion sobre sus locales. Puse un textarea y varios input=text. Y lo que quiero es poner tambien una imagen. Por lo que he leido por aquí con la funcion mail no se pueden adjuntar archivos. Lo que hace la gente es subirlos directamente al servidor, lo qual me parece un lío porque despues no sabre a que solicitud pertenece cada foto.

Lo que necesitaría és un código en php con un formulario que llamase a una función con method post="enviar_sugerencia.php" y que este enviar_sugerencia.php me dejase una solicitud en el correo con el texto del anuncio y su foto adjunta. De esta forma podría organizar este texto que me envian sobre una base html y me llegaría al correo un documento nuevo que con 4 retoques estaría listo para subir.

Hasta ahora he programado lo que será el formulario:

<FORM ACTION="enviar_sugerencia.php" METHOD=POST enctype="multipart/form-data">
<br>Qué desea añadir?<br>
<SELECT NAME="local">
<OPTION>Evento
<OPTION>Discoteca
<OPTION>Restaurante
<OPTION>Cine
<OPTION>Teatro
<OPTION>Página web
</SELECT>
<br>
<br>Nombre del local:<br>
<INPUT TYPE=TEXT NAME="nombre_local" SIZE="20" MAXLENGTH="50">
<br>
<br>Descripción (aprox. 200 palabras)<br>
<textarea name="descripcion" rows="10" cols="40">
</textarea>
<br>
<br>Dirección del local:<br>
<INPUT TYPE=TEXT NAME="direccion_local" SIZE="30" MAXLENGTH="60">
<br>Dirección de su web:<br>
<INPUT TYPE=TEXT NAME="web_local" SIZE="30" MAXLENGTH="60">
<br>Telf. de contacto:<br>
<INPUT TYPE=TEXT NAME="tlf_local" SIZE="12" MAXLENGTH="20">
<br><br>
<br>Direccion de e-mail (para gestionar anuncio)<br>
<INPUT TYPE=TEXT NAME="remitente" SIZE="30" MAXLENGTH="60">
<br><br>
<div align="center"><INPUT TYPE=SUBMIT NAME="Enviar" VALUE="Enviar"></div>
</FORM>
<br><br>
<br>Imagen 200x200 para acompañar su anuncio<br>
<form name="foto" method=post action="recibir.php"
</form>

Hasta ahora la acción enviar_sugerencia.php la sabria hacer perfectamente sólo con texto, el problema es que hago con "foto" para que me llegue la sugerencia completa al correo.

Si alguien me puede dar alguna idea de como programaría enviar_sugeencia.php, se lo agredecería.

1 saludo!
  #2 (permalink)  
Antiguo 21/09/2006, 11:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Por lo que he leido por aquí con la funcion mail no se pueden adjuntar archivos.
Técnicamente la función mail() puede enviar archivos adjuntos .. lo que pasa que no implementa dicha función un "parámetro" tipo: meta aquí su archivo y se adjuntará .. Sino que debes hacer "a mano" si lo deseas.

Cita:
Lo que hace la gente es subirlos directamente al servidor, lo qual me parece un lío porque despues no sabre a que solicitud pertenece cada foto.
Bueno .. es que en ese tipo de sistemas para empezar no generas y envias un e-mail sino que en el servidor registras en alguna BBDD o similar el archivo (nombre) y los datos relacionados .. Así quien administre tu aplicación lo verá en "linea" y no en un "e-mail" que luego tenga que ir sacando los e-mails enviados por -tu- sistema (tal vez con ayuda de reglas de correo y demás .. ).

----------------

En General, el archivo lo tienes que subir al servidor .. es el servidor el que envia el e-mail y tu archivo adjunto no el "cliente".

Ahora, .. tienes classes como PHPMailer (http://phpmailer.sourceforge.net) que te permiten generar un e-mail cómodamente .. digamos que es un sustituto o complemeto a "mail()" .. tienes métodos para adjuntar archivos (y no sólo uno) de forma simple.

Tu sólo preocupate de subir el archivo a traves de tu formulario .. lo recojes en tu script de Proceso en $_FILES y usas un campo "file" en tu formulario HTTML para tal fin. Más info:

http://www.php.net/manual/en/features.file-upload.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 21/09/2006, 13:39
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
Gracias, el tema se solucionó. Espero que cuelguen pronto la respuesta que envié.
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 23:19.