---
title: "Kan man ändra bildstorlek med PHP?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/189766-kan-man-ändra-bildstorlek-med-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "kluringen"
published: "2012-05-14T10:59:56.000Z"
updated: "2012-05-22T22:45:40.000Z"
replies: 17
views: 3232
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/189766-kan-man-ändra-bildstorlek-med-php"
---

# Kan man ändra bildstorlek med PHP?

## #1 — kluringen, 2012-05-14T10:59Z

Om jag ska tillåta uppladdning av bilder, vill jag kunna skala ner bilderna till "lagom" format innan jag sparar dem på fil. Går det?

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

## #2 — @nders, 2012-05-14T11:04Z

Ja. 

<http://php.net/manual/en/book.image.php>
<http://www.php.net/manual/en/function.imagecopyresized.php>

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

## #3 — jme, 2012-05-14T17:56Z

Kika på <https://github.com/avalanche123/Imagine>

Manual finns att läsa på <http://imagine.readthedocs.org/en/latest/index.html>

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

## #4 — walter groupius, 2012-05-16T11:29Z

Php GD eller något pluginprogram. Enklast med gd dock.

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

## #5 — kluringen, 2012-05-21T08:55Z

Hej alla hjälpsamma duktiga forumvänner! 

Är på väg att ge upp det här med bilder, har kört fast redan i det första steget. Mitt program laddar bara upp bilder som jag har skalat ner manuellt.
Gränssnittet mot Tinymce:

```php
<?php session_start();?>
<!DOCTYPE html>
<html>
<head >

<meta charset="UTF-8">
<meta name="robots" content="noindex, nofollow"> 

<link rel="stylesheet" href="stilmall.css" type="text/css" />

<style type="text/css">
</style>

<title>info</title>

<script type="text/javascript" src="js/tiny_mce/tiny_mce.js"></script>
	<script type="text/javascript">
	tinyMCE.init({
	mode : "textareas",
	language : "sv",
	theme : "advanced",
	theme_advanced_buttons1 : "bold,italic,underline,strikethrough,fontselect,fontsizeselect,|,forecolor,undo",
	theme_advanced_buttons2 : "",
	theme_advanced_buttons3 : "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	content_css : "stilmall.css",
	theme_advanced_font_sizes : "Liten=12px, Normal=16px, Stor=20px",
	forced_root_block : '',
	force_br_newlines : true,
	force_p_newlines : false
	});
	</script>

</head>

<body>
<?php $_SESSION['sida'] = 'z-edit.php'; 
$_SESSION['version'] = 0;
$_SESSION['visa'] = " ";
?>
<?php include ("menylista.php"); ?>

<div id="storruta">

<h1>Uppdatering av webbsidor</h1>
<div id="knapp3">
<form id="avbryt" name="avbryt" action="z-cancel.php">
<input type="submit" name="submit" id="submit" value="Avbryt" />
</form>
</div>

<div id="knapp">
<form id="bild" name="bild" action="z-utforska.php">
<input type="submit" name="submit" id="submit" value="Ladda" />
</form>

</div> 

<form id="textfil" name="textfil" method="post" action="z-skriv.php">
<fieldset>
<textarea  name="gruppsida" id="gruppsida" cols="65" rows="20"><?php 
$filnamn = $_SESSION['filnamn'];
$file = fopen($filnamn, "r");
$innehall = fread($file, filesize ($filnamn));
$_SESSION['sparversion'] = $innehall;
echo $innehall;
fclose($file);?>
</textarea> <p>

<!--<label for="submit"></label> -->
<input type="submit" name="submit" id="submit" value="Spara" />
</fieldset>
</form>
<p>
<a href="z-restore.php"><span class="storre">Hämta en sparad version</span></a>
</div>
</body>
</html>
```

Öppnar clientens utforskare:

```php
<?php session_start();?>
<!DOCTYPE html>

<head >

<meta charset="UTF-8">
<meta name="robots" content="noindex, nofollow"> 

<link rel="stylesheet" href="stilmall.css" type="text/css" />

<style type="text/css">
</style>

<title>utforska</title>

</head>

<body>
<?php $_SESSION['sida'] = 'z-utforska.php';
//$_SESSION['sida1'] = 'z-utforska.php';  
?> 

<?php include ("menylista.php"); ?>

<div id="storruta">
<h1>Ladda upp en fil</h1>

<form  method="post" action="z-ladda.php" enctype="multipart/form-data">
<input type="file" id="file" name="file" onchange='submit()'>
</form>

</div>
</body>
</html>
```

Tar hand om det som blev uppladdat:

```php
<?php session_start();?>
<!DOCTYPE html>
<html>
<head >

<meta charset="UTF-8">
<meta name="robots" content="noindex, nofollow"> 

<link rel="stylesheet" href="stilmall.css" type="text/css" />

<style type="text/css">
</style>

<title>ladda</title>
</head>

<body>
<?php $_SESSION['sida'] = 'z-ladda.php'; 
?>
<?php include ("menylista.php"); ?>
<?php $_SESSION['filen']=$_FILES["file"]["name"];?>
<div id="storruta">

<h1>Laddar upp vald fil</h1>

<?php
move_uploaded_file ($_FILES["file"]["tmp_name"], $_SESSION['mapp']."/" . $_FILES["file"]["name"]);
?>
<?php 
if ($_FILES["file"]["type"]=="image/pjpeg"){
/*
$bild= $_SESSION['mapp']."/".$_FILES["file"]["name"];
list($width, $height) = getimagesize($bild);

echo $width." ".$height; 
echo "  ";
echo $_FILES["file"]["type"];
*/
$filnamn = $_SESSION['filnamn'];
$file = fopen($filnamn, "r");
$innehall = fread($file, filesize ($filnamn));
fclose($file);

$divdel="<div class=\"bild-v-260\">"; 
$imgdel="<img src=\"".$_SESSION['mapp']."/".$_FILES["file"]["name"]."\""." alt=\"bild\"></div>";

$nyinnehall = $divdel.$imgdel.$innehall;

$file = fopen($filnamn, "w");
fwrite($file, $nyinnehall);
fclose($file);
exit;
}
?>

<?php if ($_FILES["file"]["type"]=="application/pdf"):?>

<p>
Ange en text till länken<p>
<div id="knapp">
<form id="avbryt" name="avbryt" action="z-cancel.php">
<input type="submit" name="submit" id="submit" value="Avbryt" />
</form>
</div> 

<form method="post" action="z-lank.php">
<fieldset>
<input type="text" name="text" id="text" size="50"><p>
<input type="submit" name="submit" id="submit" value="Skicka">
</fieldset>
</form> 

<?php endif ?>

</div>

</body>
</html>
```

Hade börjat testa lite att manipulera bildstorleken (kod bortkommenterad) men det fungerar bara om jag lägger bilden på disk först (får inte tag på värden från tempfilen).

I övrigt funkar det. Måste slutanvändaren manipulera bilderna själva för att jag överhuvudtaget ska kunna ladda upp dem, kan de ju lika gärna göra hela jobbet med lite hjälpinstruktioner själva? Bilder som jag har skalat ner som jag vill ha dem läggs ut snyggt o prydligt så jag är frestad att nöja mig med det om det inte finns något enkelt sätt att komma förbi det första hindret.

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

## #6 — @nders, 2012-05-21T08:57Z

> men det fungerar bara om jag lägger bilden på disk först (får inte tag på värden från tempfilen).

Är det verkligen ett problem då? Om det inte går att manipulera tempfilen, spara filen till disk först och öppna den därifrån.

mvh

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

## #7 — kluringen, 2012-05-21T10:45Z

> **[@nders skrev:](https://www.webforum.nu/p/1550832)**
>
> > men det fungerar bara om jag lägger bilden på disk först (får inte tag på värden från tempfilen).
>
> Är det verkligen ett problem då? Om det inte går att manipulera tempfilen, spara filen till disk först och öppna den därifrån.
> 
> mvh

Det problemet är ju lätt att komma runt precis som du säger. Värre är att  originalfilen inte laddas inte upp alls. Först efter att jag skalar ner bilden manuellt kan jag ladda den. Då känns det ju meningslöst att låta bli att skala ner den helt och hållet till presentabelt skick. Det ställer ju inte större krav på användaren att skala bilden till "färdig" storlek än att skala den till laddbart skick.

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

## #8 — @nders, 2012-05-21T10:56Z

Menar du att bilden är för tung (dvs för många bytes) för att du ska kunna spara den? Vilka tyngder pratar vi om?

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

## #9 — kluringen, 2012-05-21T12:20Z

3072 x 2304 px (alla) 
2,3 upp till 3,8 Mb, vet inte varför det varierar, har använt samma kamera

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

## #10 — @nders, 2012-05-21T12:30Z

Om det beror på att filerna är för stora kanske du kan ändra i php.ini om du har tillgång till det?

<http://www.radinks.com/upload/config.php>

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

## #11 — kluringen, 2012-05-21T16:44Z

```php
echo $_FILES["file"]["error"];
```

 ger returkod 1. Hur vet jag vad det betyder? Så att jag angriper rätt orsak?

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

## #12 — walter groupius, 2012-05-21T20:05Z

<http://php.net/manual/en/features.file-upload.errors.php>

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

## #13 — kluringen, 2012-05-22T00:28Z

Tack **walter groupius**, och tack **@nders**. Nästa fråga: Måste jag ladda ner nåt för att få till php.ini filen? Blir jag tvungen att gräva i Apache konfigurationen också på min lokala server? Jag fick en länk av @nders, där finns en upload länk i texten. Får lite kalla fötter när jag inte vet vad som händer sen.

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

## #14 — Pedda, 2012-05-22T08:48Z

Default inställningen för max uppladdningsstorlek är 2 Mb i php.ini
Har du sidan på ett vanligt webbhotell så har du nog inte så du kan ändra några inställningar i php.ini

Kolla vad du har för inställningar på servern med phpinfo()

/red
Använd ini_set() för att ändra upload_max_filesize i scriptet om du inte har tillgång till php.ini på servern.

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

## #15 — drew, 2012-05-22T11:13Z

Det ska räcka att ändra i php.ini om du har tillgång till den. /etc/php5/apache2/php.ini om du har en linux-server. Du ska inte behöva ladda ner något, utom att du kanske ska installera en texteditor. nano brukar finnas med.

Om du inte har tillgång till php.ini så är det inte säkert att ini_set() fungerar heller. Men värt ett försök.

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

## #16 — kluringen, 2012-05-22T13:38Z

KUL! Jag hittade php.inifilen, ändrade upload_max_filesize till 4M och det fungerar. På den riktiga servern hos Loopia får jag väl be supporten om hjälp men först vill jag se att jag lyckas skala bilden också.

Ny fråga. Alla mina originalbilder har filändelsen "JPG". Kan jag ostraffat ändra till "jpg" i programmet? Det blir ju knas om det görs i utforskaren, jag brukar göra spara som i picturemanager. 

Jag lär nog behöva återkomma med flera frågor under arbetets gång, men försöker själv så gott jag kan först. Tack för all hjälp så här långt.

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

## #17 — Pedda, 2012-05-22T13:55Z

Hade för mig att man kunde sätta upload_max_filesize med ini_set(), men tyvärr mindes jag fel.
upload_max_filesize har PHP_INI_PERDIR mode vilket innebär att det bara kan sättas i php.ini, .htaccess eller httpd.conf

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

## #18 — kluringen, 2012-05-22T22:45Z

Hej Alla!

Nu ger jag upp bildskalandet med PHP. Stupade reda på första statementet, nåt fattas. Det blev bra ändå nu när jag kan läsa upp originalbilder. På Loopia servern behöver jag inte ändra något, där har de satt max_size så att det räcker till. 

Jag låter webbläsaren jobba istället, så slipper jag. Lade till width="230" i raden som lägger ut bilden. Lite trögare att lägga ut en oskalad bild, men det kan jag leva med. Det kommer inte att hända ofta att slutanvändaren lägger ut egna bilder.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/189766-kan-man-ändra-bildstorlek-med-php
