---
title: "Bifoga bild i mail formuläret"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/160059-bifoga-bild-i-mail-formuläret"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Mulle71"
published: "2007-05-08T18:22:52.000Z"
updated: "2007-05-09T06:08:51.000Z"
replies: 2
views: 583
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/160059-bifoga-bild-i-mail-formuläret"
---

# Bifoga bild i mail formuläret

## #1 — Mulle71, 2007-05-08T18:22Z

Jag undrar om detär någon som vet hur jag skall fixa upload filen i PHP så biden går med i mailet. Har bara lyckats få den ta bara själva data texten var bilden heter och var den finns. Jag är webmaster för en hemsida som de skulle vara guld värt att få i gång den funktionen.

Nån sakm hjälpa snart despirat..

Mvh Pg webaster <https://www.trapalanda.se>

  :stud

Permalänk: https://www.webforum.nu/p/160059

## #2 — Pedda, 2007-05-08T18:43Z

Bifogar en kod jag hade för att skicka ut mail till medlemmar i en förening.
I mailet kunde man bifoga en fil.

Läs koden så kanske du förstår hur det funkar. Ganska svårt att förklara.

```php
<?php
session_start();

// Kolla safe mode
if (!ini_get('safe_mode') ){
   // fixa så det inte blir timeout
	ini_set("max_execution_time","9999");
	ignore_user_abort(true); 
	set_time_limit(9999);
}

include('connect.php');

if (isset($_POST['utskick'])) {
	
	// Tag bort eventuella blanksteg i början eller slutet
	foreach($_POST as $key => $val){
		$_POST[$key] = trim($val);
	}
	//Kolla efter tomma fält
	if (empty($_POST['amne'])) {
		$reg_error[] = 0; 
	}
	//Kolla efter tomma fält
	if (empty($_POST['meddelande'])) {
		$reg_error[] = 1; 
	}

	// errorlista 
	$error_list[0] = "Du glömde fylla i ett ämne.";
	$error_list[1] = "Du glömde fylla i meddelandet.";
	
	if (isset($reg_error)){ 
	  // Någon uppgift är fel, skriv ut felmeddelande...
	  echo "Något blev fel:<br>\n"; 
	  echo "<ul>\n"; 
	  for ($i=0; $i<sizeof($reg_error); $i++) { 
		echo "<li>{$error_list[$reg_error[$i]]}</li>\n"; 
	  } 
	  echo "</ul>\n"; 
	  echo "<br><a href=\"javascript:history.back()\">Tillbaka</a>\n";
	  exit;
	}
	
	if ($_POST['vilka'] == 'betalat') {
		$where = " WHERE BETALT >= '".date("Y-m-d")."'";
		if ($_POST['status'] != 'Alla') {
			$and = " AND status = '".$_POST['status']."'";
		} else {
			$and = "";
		}
	}
	if ($_POST['vilka'] == 'ejbetalat') {
		$where = " WHERE BETALT < '".date("Y-m-d")."'";
		if ($_POST['status'] != 'Alla') {
			$and = " AND status = '".$_POST['status']."'";
		} else {
			$and = "";
		}
	}
	if ($_POST['vilka'] == 'Alla') {
		$where = "";
		if ($_POST['status'] != 'Alla') {
			$and = " WHERE status = '".$_POST['status']."'";
		} else {
			$and = "";
		}
	}
	$from    = "".$inst['epost']."";
	$subject = $_POST['amne'];
	$message = $_POST['meddelande'];
	 
	$fileatt      = $_FILES['attachment']['tmp_name'];
	$fileatt_type = $_FILES['attachment']['type'];
	$fileatt_name = $_FILES['attachment']['name'];
	 
	$headers = "From: $from";
	
	if (is_uploaded_file($fileatt)) {
		// Läs in filen som ska bifogas ('rb' = read binary)
		$file = fopen($fileatt,'rb');
		$data = fread($file,filesize($fileatt));
		fclose($file);
			 
		// Generera en boundary string
		$semi_rand = md5(time());
		$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
			 
		// Lägg till headers för filen som bifogas
		$headers .= "\nMIME-Version: 1.0\n" .
					  "Content-Type: multipart/mixed;\n" .
					  " boundary=\"{$mime_boundary}\"";
			 
		// Add a multipart boundary above the plain message
		$message2 = "This is a multi-part message in MIME format.\n\n" .
					 "--{$mime_boundary}\n" .
					 "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
					 "Content-Transfer-Encoding: 7bit\n\n" .
					 $message . "\n\n"; 
			 
		// Base64 encode the file data
		$data = chunk_split(base64_encode($data));

		// Add file attachment to the message
		$message2 .= "--{$mime_boundary}\n" .
					  "Content-Type: {$fileatt_type};\n" .
					  " name=\"{$fileatt_name}\"\n" .
					  "Content-Disposition: attachment;\n" .
					  " filename=\"{$fileatt_name}\"\n" .
					  "Content-Transfer-Encoding: base64\n\n" .
					  $data . "\n\n" .
					  "--{$mime_boundary}--\n";
	}
		
	$getadress = mysql_query("SELECT epost FROM ".$mysql_prefix."medlemmar".$where . $and."") or die(mysql_error());
	while ($rad = mysql_fetch_array($getadress)) {
		$to = $rad['epost'];

		// Send the message
		mail($to, $subject, "$message $message2", $headers);
	}

	header("Location: kontrollpanel.php?info=mailutskick");
	exit;
}
?>
```

Permalänk: https://www.webforum.nu/p/1972925

## #3 — Pedda, 2007-05-09T06:08Z

Du kan även kolla på denna class som funkar med bl.a
\- HTML Email
\- HTML Email with embedded images
\- HTML Email with attachments
\- HTML Email with embedded images and attachments
\- Text email
\- Text email with attachments

<http://www.phpguru.org/static/mime.mail.html>

Permalänk: https://www.webforum.nu/p/1973021

---

Tråden på webben: https://www.webforum.nu/amne/php/160059-bifoga-bild-i-mail-formuläret
