---
title: "Bilderna laddas inte upp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/122607-bilderna-laddas-inte-upp"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "streetrobban"
published: "2005-02-16T18:59:11.000Z"
updated: "2005-02-17T13:08:26.000Z"
replies: 5
views: 697
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/122607-bilderna-laddas-inte-upp"
---

# Bilderna laddas inte upp

## #1 — streetrobban, 2005-02-16T18:59Z

Tjenare, 
sitter med en kod jag hittat här på forumet. Men jag blir inte klok. 

Om jag tex. väljer att ladda upp 3 bilder och klickar OK så laddas bara en av dem upp. Inte de andra två.

Kan någon hjälpa mig med den här koden?

```php
<?php
// Mappen där bilderna ska sparas, måste avslutas med / 
$mapp = "bild1/";

// Ladda upp bilderna
if (isset($_POST['filuppladdning']))
{
	if (is_dir("$mapp")) 
{

// Loopa igenom alla poster i formuläret
$keys = array_keys($_POST);     
$i = 0;

while($i < count($keys))
{ 
	if (strlen($_POST[$keys[$i]])>0) 
	{
		// Validera formen
                if(!empty($_FILES['file']['name'])) 
                { 
			// Kopiera värden
			$file = $_FILES['file'];         

			// Kolla filtyp
			$filandelse = explode('.',$file['name']); 
			$sort = count($filandelse) - 1; 
			$so = $filandelse[$sort];

			// Tillåtna filtyper
			if (($so != 'gif') AND ($so != 'jpg') AND ($so != 'jpeg') AND ($so != 'png'))
			{   
				// Vid fel filtyp 
                        	die("<center>Fel filtyp, måste vara jpg, jpeg, gif eller png!<br>\nDu försökte ladda upp en $filandelse[$sort] fil.");
                    	}

			// Skicka filen
			if(is_uploaded_file($_FILES['file']['tmp_name'])) 
			{ 
				// Om det är rätt! 
                        	move_uploaded_file($file['tmp_name'],$mapp . $file['name']); 

                        	echo "<center><b>Klart! Bilderna är uppladdade.</b></center>\n<p>\n";
                        	echo "<table width=\"400\" border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"10\" bgcolor=\"#666699\">\n";
                        	echo "<tr>\n";
                        	echo "<td>Filnamn:</td>\n";
                        	echo "<td>".$file['name']."</td>\n";
                        	echo "</tr>\n";
                        	echo "<tr>\n";
                        	echo "<td>Bytes:</td>\n";
                        	echo "<td>".$file['size']."</td>\n";
                        	echo "</tr>\n";
                        	echo "</table><p>\n";
                    	}
                    	else
                    	{
                    		// Om det är fel!
				echo "<center>Något gick fel!</center><p>\n<pre>\n"; 
				print_r($file); 
                        	echo "</pre>\n";
                    	}
                }
	}
        $i++;
        }
	}
}

if (isset($_GET['ladda_upp']))
{
	?> 
	<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
	<input name="filuppladdning" type="hidden">
	<input name="antal" type="hidden" value="<?=$_GET['antal']?>">
	<table width="400" border="0" align="center" cellpadding="10" cellspacing="0" bgcolor="#666699">
	<tr> 
		<td colspan="2">
		<p>Tillåtna filtyper är; jpg, jpeg, gif och png!
		</td>
	</tr>

<?php
for ($antal=1; $antal<=$_GET['antal']; $antal++)
{
	?>
	<tr> 
		<td>
		<input type="file" name="file" value="fil<?=$antal?>">
		</td>
	</tr>
<?php
}
?>

<tr>
	<td>
	<input name="submit" type="submit" value="Ladda upp">
	</td>
</tr>
</table>
</form>

<?php
}
?>

<form action="<?=$PHP_SELF?>" method="get">
<input name="ladda_upp" type="hidden">
<table width="400" border="0" align="center" cellpadding="10" cellspacing="0" bgcolor="#666699">
<tr>
	<td colspan="2">
	Hur m&aring;nga bilder vill du ladda upp?
	</td>
</tr>
<tr> 
	<td width="120">
	<input name="antal" type="text" id="antal" size="2" maxlength="2" />
	</td>
	<td width="280">
	<input name="submit" type="submit" value="Fortsätt">
	</td>
</tr>
</table>
</form>
```

När jag provar att ladda upp bilder så laddas som sagt bara en bild upp. Sedan skriver den ut följande felmeddelande, på bilden som laddats upp.

```
Array
(
    [name] => catch_me_if_you_can.jpg
    [type] => image/jpeg
    [tmp_name] => /home/kunder/tmp/xXxxXX
    [error] => 0
    [size] => 4757
)
```

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

## #2 — streetrobban, 2005-02-16T23:11Z

Jag provade att ändra en kodrad som följer nedan. Eftersom jag antog att varje input måste ha ett unikt namn, men då laddades INGEN bild upp och felmeddelandet försvann.

```php
<input type="file" name="file" value="fil<?=$antal?>" class="input">
```

mot

```php
<input type="file" name="file<?=$antal?>" value="fil<?=$antal?>" class="input">
```

Men som sagt, det funkade inte heller.

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

## #3 — streetrobban, 2005-02-16T23:15Z

Jag har märkt att den alltid laddar upp den sista bilden. Oavsett hur många bilder jag laddar upp.
Väljer jag att bara ladda upp en bild så funkar detta, men jag får fortfarande samma felmeddelande.

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

## #4 — Matte, 2005-02-17T07:53Z

En variant på hur du kan gå tillväga: <http://www.phpportalen.net/viewtopic.php?p=220551#220551>

En annan är att sätta name="file\[\]", då får du det i en array.
Är lite osäker då om det blir $\_FILES\['file'\]\[0\]\['tmp_name'\] eller $\_FILES\['file'\]\['tmp_name'\]\[0\], men det ser du om du kör print_r() på $\_FILES.

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

## #5 — streetrobban, 2005-02-17T11:28Z

Matte: Jag provade att ändra detta:

```php
<input type="file" name="file" value="fil<?=$antal?>" class="input">
```

till

```php
<input type="file" name="file[<?=$antal?>]" value="fil<?=$antal?>" class="input">
```

Men då får jag följande felmeddelande :)

```
Fel filtyp, måste vara jpg, jpeg, gif eller png!
Du försökte ladda upp en Array fil.
```

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

## #6 — Matte, 2005-02-17T13:08Z

Du måste loopa arrayen, t.ex. med foreach.

Eftersom jag inte kommer ihåg exakt hur arrayen ser ut, tycker det borde vara ena varianten men har för mig det är den andra varianten, kan jag inte säga exakt hur din loop ska se ut.

Lägg in följande någonstans i början på din sida.

```php
echo "<pre>";
echo "\$_FILES: ";
print_r($_FILES);
echo "</pre>";
```

Vad får du utskrivet när du försöker ladda upp flera filer ?

Det räcker med att du använder name="file\[\]". Finns ingen anledning att lägga in ett index.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/122607-bilderna-laddas-inte-upp
