Foros del Web » Programando para Internet » PHP »

Problemas para enviar form con datos + archivo

Estas en el tema de Problemas para enviar form con datos + archivo en el foro de PHP en Foros del Web. Buenos días a todos, soy nuevo en esto y estoy intentando mandar un formulario con datos y con un fichero adjunto. Primero determino si hay ...
  #1 (permalink)  
Antiguo 23/12/2004, 01:56
 
Fecha de Ingreso: julio-2002
Mensajes: 3
Antigüedad: 21 años, 9 meses
Puntos: 0
Problemas para enviar form con datos + archivo

Buenos días a todos, soy nuevo en esto y estoy intentando mandar un formulario con datos y con un fichero adjunto. Primero determino si hay un fichero adjunto mediante la clave "size" de la matriz asociativa HTTP_POST_FILES. Si lo hay, lo leo y lo preparo para luego adjuntarlo al correo, de esta manera.

<input name="archivo" type="file" size="34" />

******************************
if ($HTTP_POST_FILES['archivo']['size']!=0)
{
$fichero = fopen($archivo, 'r');
$contenido = fread($fichero, filesize($archivo));
$encoded_attach = chunk_split(base64_encode($contenido));
fclose($fichero);
}
*******************************

Pero el servidor me da este error

*******************************
Warning: fopen("", "r") - Función ioctl no apropiada para el dispositivo in /home/httpd/vhosts/istanbulingua.com/httpdocs/presupuestos.php on line 258

Warning: stat failed for (errno=2 - No existe el fichero o el directorio) in /home/httpd/vhosts/istanbulingua.com/httpdocs/presupuestos.php on line 259

Warning: fread(): supplied argument is not a valid File-Handle resource in /home/httpd/vhosts/istanbulingua.com/httpdocs/presupuestos.php on line 259

Warning: fclose(): supplied argument is not a valid File-Handle resource in /home/httpd/vhosts/istanbulingua.com/httpdocs/presupuestos.php on line 261

*******************************

Alguien me puede decir algo?

Muchas gracias po adelantado.
  #2 (permalink)  
Antiguo 23/12/2004, 08:32
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Para enviar datos adujntos por correo necesitas tener una base de datos .. mySQL
__________________
Adios ...!!!!

Última edición por BLAH !!; 27/12/2004 a las 13:18
  #3 (permalink)  
Antiguo 26/12/2004, 19:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por BLAH !!
Para enviar datos adujntos por correo necesitas tener una fuente de datos .. mySQL
No sè por qué comentas eso. La fuente de datos puede ser cualquier cosa.

El caso es que el problema que tiene el amigo es que en:

$fichero = fopen($archivo, 'r');

$archivo no està obteniendo nada .. en su defecto deberìa usar:
$HTTP_POST_FILES['archivo']['tmp_name']

o mejor el array $_FILES.

Es en "tmp_name" donde queda (nombre y ruta) el archivo que PHP sube por HTTP vìa el formulario HTML y su campo file .. y de ahì es de donde deberìa leerlo para componer el mail() (con sus cabeceras y demàs funciones a aplicar para pre-procesar el archvio).

Ahora .. sòlo falta que tenga permisos para hacer dicha operaciòn .. por què si usa por ejemplo "safe_mode" (a ON) .. modo seguro de PHP .. no serà posible hacer eso directamente, pero .. en su defecto puedes traerte tu archivo a un directorio de tu sitio vìa move_uploaded_file() y de ahì hacer el fopen() pero desde la ruta que quedò bajo tu sitio. Esa función (move...) es la única que tiene permisos para acceder a los archivos que PHP sube por HTTP para moverlos a donde corresponda.

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 08:06.