Foros del Web » Programando para Internet » PHP »

un campo en formulario que sea para mandar una imagen

Estas en el tema de un campo en formulario que sea para mandar una imagen en el foro de PHP en Foros del Web. hola muy buenas estoy haciendo un formulario y por ahora me va todo bien,me envia los datos pero ahora estoy intentando insertar en el formulario ...
  #1 (permalink)  
Antiguo 25/11/2004, 08:41
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 13 años, 3 meses
Puntos: 3
un campo en formulario que sea para mandar una imagen

hola muy buenas estoy haciendo un formulario y por ahora me va todo bien,me envia los datos pero ahora estoy intentando insertar en el formulario un campo para mandar una imagen a mi email, pero no me sale .
lo tengo puesto asin:
te puesto la parte donde sale el codigo fuente del intento de mandar la fotografia por email, tampoco no te he puesto el formulario entero porque no cabe,,,,,,,,, ;

Código:
<?
if ($upload) copy($upload,$upload_name);

$dir = opendir(".");
while ($file = readdir($dir)) {
if (is_file($file)) <a href=\"$file\">$file</a><br>
}
closedir($dir);
?>

<form enctype=\"multipart/form-data\" action=\"modules/VendaPrpiedad/mail vender.php\" method=\"post\">
<td valign=\"top\" width=\"41%\">
                                          <div align=\"right\" class=\"textonormal\">
                                            <p class=\"textonormalGris\">Fotos
                                          </div>
                                        </td>
<td valign=\"top\" width=\"59%\">
<input type=\"file\" name=\"upload\">
</td>
<br><br>
                                     
<tr>
<td width=\"41%\"> </td>
<td valign=\"top\" width=\"59%\"> <span class=\"traducir\">
<input type=\"submit\" name=\"enviar\" value=\"Enviar\">
</span> </td>
</tr>
</form>
y luego en el archivo que manda los datos por e-mail lo tengo asin;

Código:
<?php
if (!$HTTP_POST_VARS){


}
else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Quieren agregar una propiedad a la pagina para vender\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["mail"] . "\n";
$cuerpo .= "Nombre y apellidos: " . $HTTP_POST_VARS["NomyApe"] . "\n";
$cuerpo .= "El Telefono de contacto: " . $HTTP_POST_VARS["Telefono"] . "\n";
$cuerpo .= "El tipo de Inmueble: " . $HTTP_POST_VARS["Inmueble"] . "\n";
$cuerpo .= "Tipo de Operacion: " . $HTTP_POST_VARS["Operacion"] . "\n";
$cuerpo .= "Provincia: " . $HTTP_POST_VARS["Provincia"] . "\n";
$cuerpo .= "Localidad: " . $HTTP_POST_VARS["Localidad"] . "\n";
$cuerpo .= "Zona: " . $HTTP_POST_VARS["Zona"] . "\n";
$cuerpo .= "Precio: " . $HTTP_POST_VARS["Precio"] . "\n";
$cuerpo .= "Descripcion del Inmueble: " . $HTTP_POST_VARS["Descripcion"] . "\n";
$cuerpo .= "archivo adjunto: " . $HTTP_POST_VARS["upload"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);

//doy las gracias por el envío
echo "Su informacion ha sido recibida, sus datos apareceran en nuestro sitio dentro de 24 horas.";
}
?>
pues las verdad no se lo que fallla a ver si podeis echarme un mano
muchas gracias y saludos

Última edición por gachon; 25/11/2004 a las 10:41
  #2 (permalink)  
Antiguo 25/11/2004, 09:39
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 13 años, 2 meses
Puntos: 0
Para recojer un archivo has de utilizar $_FILES esta variable global. no la $_POST.
  #3 (permalink)  
Antiguo 25/11/2004, 10:05
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 13 años, 3 meses
Puntos: 3
entonces que devo cambiar esto:
Código:
$cuerpo .= "archivo adjunto: " . $HTTP_POST_VARS["upload"] . "\n";
por esto ;
Código:
$cuerpo .= "archivo adjunto: " . $HTTP_FILES_VARS["upload"] . "\n";
te lo digo porque lo he intentado y no me sale;
bueno gracias por el interes

Última edición por gachon; 25/11/2004 a las 10:08
  #4 (permalink)  
Antiguo 25/11/2004, 11:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El archivo adjunto no puedes enviarlo con la función mail() como lo usas .. debes componer un buen montón de cabeceras HTTP para tal fin.

Te recomiendo usar la classe PHP Mailer:
http://phpmailer.sourceforge.net

Dicha classe .. en su método correspondiente te pedirá una ruta del archivo .. Cuando haces un "upload" .. el archivo queda temporalmente en:

$HTTP_FILES_VARS['upload']['tmp_name']

así que esa será la ruta que debes darle. En principio no es necesario que hagas un copy() salvo que quieras dejar "copia" del archivo en tu servidor en alguna parte de tu sitio ...

Un saludo,

PD: usa los arrays superglobales: $_GET, $_POST, $_FILES .. etc en lugar de los que usas: $HTTP_xxx_VARS .. En las FAQ's de este foro tienes una explicación al respecto.

Un saludo,
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 22:38.