Gå til innhold

resize bilder vhja php


Anbefalte innlegg

Videoannonse
Annonse

jepp, seff.

 

<link rel="stylesheet" type="text/css" href="style.css">
<?php
// Configuration file

$regScript  = "reg.php"; // Path to main script. Default: reg.php
$formMethod  = "post"; // Method for form. Use post or get
$pathList  = "./vis.php"; // Path to shownews.php

// mySQL configuration

$mySQLhost      = "localhost";
$mySQLuser  = "*******";
$mySQLpass  = "********";
$mySQLdb  = "news";
$mySQLtable  = "nyhet";

// Messages
$regSuccess	= "Innlegget ble registrert! <p><a href='$pathList'>Les innlegg!</a></p>";
$regFailed	= "<a>Ditt innlegg ble ikke registrert. Prøv igjen senere!</a><p><a href='$pathList'>Tilbake</a></p>";

// Miscs
$TableWidth     = "50%";
$SmileyDir  = "smileys";      
$connection = mysql_connect($mySQLhost , $mySQLuser, $mySQLpass);

?>

 

Jeg er helt sikker på at det er mySQL configurasjonen min det er noe galt med. Trenger jeg et felt som heter pic_id også?

Endret av Tha_Zaynt
Lenke til kommentar

Det fungerer ganske greit nå, men jeg har to problem; Når jeg laster opp ett nytt bilde, får dette bilde navnet bilde1.jpg og bilde1_thumb.jpg, men når jeg etter det laster opp enda nye bilder skriver de over bilde1.jpg og bilde1_thumb.jpg. Det andre problemet er at jeg ikke får hentet ut den siste Url'en fra databasen min.

 

slik ser koden ut nå btw:

<link rel="stylesheet" type="text/css" href="style.css">
<?php session_start();?>
<html>
<head>
<title>News</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language='Javascript' type='text/javascript'>
<!--
function addsmile(smiley) {
 doc_content = document.sign.nyhet.value + smiley
 document.sign.nyhet.value = doc_content
 document.sign.nyhet.focus()
}
// -->
</script>
</head>

<body>
<?php
if($_SESSION['auth'])
{
include("config.php");
echo <<< end
<form name='sign' method='$formMethod' action='$regScript'>
<p>Overskrift: <input type='text' name='tittel' size='37'>
<p>Forfatter:  <input type='text' name='navn' size='37'>
<p><div>Nyhet:<div><textarea value='' name='nyhet' rows='10' cols='46'></textarea></div></div>
<a href="javascript:addsmile(' X( ')"><img src="$SmileyDir/angry.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :f ')"><img src="$SmileyDir/flirt.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :x ')"><img src="$SmileyDir/dead.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :( ')"><img src="$SmileyDir/frown.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :h ')"><img src="$SmileyDir/cool.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :i ')"><img src="$SmileyDir/idea.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :) ')"><img src="$SmileyDir/smile.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(';) ')"><img src="$SmileyDir/wink.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :l ')"><img src="$SmileyDir/hrmpf.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :o ')"><img src="$SmileyDir/redface.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :00 ')"><img src="$SmileyDir/look.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :p ')"><img src="$SmileyDir/tounge.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :q ')"><img src="$SmileyDir/quest.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :r ')"><img src="$SmileyDir/shame.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :D ')"><img src="$SmileyDir/biggrin.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :e ')"><img src="$SmileyDir/supergrin.gif" alt="" border="0"></a>
<p><input type='submit' value='Send'> <input type='reset' value='Visk ut!'>
</form>
end;

include("config.php");
// henter ut hva max id er og legger til en for å være sikker på at vi ikke skriver over noe bilder. selv om noe blir slettet
$connection = mysql_connect($mySQLhost , $mySQLuser, $mySQLpass);
mysql_select_db($mySQLdb2, $connection);
$q="SELECT max(pic_id) AS lastID FROM image";
$result= mysql_query($q, $connection) or die();
$art=mysql_fetch_object($result);
$lastid=$art->lastID;

$img_nr= $lastid +1;

echo('<br />

<form enctype="multipart/form-data" action="' . $_SERVER['PHP_SELF'] . '" method="post">

<p><span class="txtomr">Last opp et bilde:</span> <input type="file" name="userfile">

<input type="submit" value="Upload"></p>

</form>');

//mappe bildene lagres i
$path = 'upload/';

$max_size = 1000000;


$filending = explode('.', $HTTP_POST_FILES['userfile']['name']);
$nyttnavn="bilde$img_nr.$filending[1]";
$nyttnavn_thumb="bilde_thumb$img_nr.$filending[1]";


if (!isset($HTTP_POST_FILES['userfile']))
{
exit;
}

if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name']))
{

if ($HTTP_POST_FILES['userfile']['size']>$max_size)
{
 echo "The file is too big<br>n";
 exit;
}

if (
($HTTP_POST_FILES['userfile']['type'] == 'image/gif') ||
($HTTP_POST_FILES['userfile']['type'] == 'image/pjpeg') ||
($HTTP_POST_FILES['userfile']['type'] == 'image/jpeg') ||
($HTTP_POST_FILES['userfile']['type'] == 'image/png'))
{

 if (file_exists($path . $HTTP_POST_FILES['userfile']['name']))
 {
   echo "The file already exists<br>n";
   exit;
 }

 $res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .
 $nyttnavn);

 if (!$res)
 {
   echo 'upload failed!<br />\n';
   exit;
 }
 else
 {
   echo 'upload sucessful<br />';
 }

 echo 'File Name: ' . $HTTP_POST_FILES['userfile']['name'] . '<br />';
 echo 'File Size: ' . $HTTP_POST_FILES['userfile']['size'] . ' bytes<br>';
 echo 'File Type: ' . $HTTP_POST_FILES['userfile']['type'] . '<br />';
}
else
{
 echo "Wrong file type<br/>\n";
 exit;
}

}

$my_file = $HTTP_POST_FILES['userfile']['name'];


?>
<p><a href="upload/">opplastede bilder</a></p>


<?php
/*
$the_array = Array();

$handle = opendir('upload/');

while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{   
 $the_array[] = $file;
}
}

closedir($handle);

foreach ($the_array as $element)
{
echo "$element @br /@ \n";
}*/
function createThumb($sfile,$dfile)
{
// the passed variables are string filenames, the source and the destination

global $maxwidth,$maxheight;

$simg = imagecreatefromjpeg($sfile);
$currwidth=imagesx($simg);
$currheight=imagesy($simg);

//set the dimensions of the thumbnail
if ($currheight>$currwidth*1.7)
{
 $zoom=$maxheight/$currheight;
 $newheight=$maxheight;
 $newwidth=$currwidth*$zoom;
}
else
{
 $zoom=$maxwidth/$currwidth;
 $newwidth=$maxwidth;
 $newheight=$currheight*$zoom;
}

//create the resource img for the thumbnail
$dimg = imagecreate($newwidth, $newheight);

//convert truecolor immage resource to palette image resource (so we can count the colors...)
imagetruecolortopalette($simg, false, 256);
$palsize = ImageColorsTotal($simg);
for ($i = 0; $i<$palsize; $i++)
{
 $colors = ImageColorsForIndex($simg, $i);
 ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']);
}

imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);
imagejpeg($dimg,$dfile);

ImageDestroy($simg);
ImageDestroy($dimg);
}

$maxwidth=250;
$maxheight=250;
createThumb("upload//$nyttnavn","upload//$nyttnavn_thumb");


}

else
{
 echo "Du må være logget inn dersom du skal ha tilgang til denne funksjonen.<p>";
 include ("login.php");
}
?>

</body>
</html>

Endret av Tha_Zaynt
Lenke til kommentar

okei, det at bildene får nytt navn har jeg gjort med vilje for å få det hele mer oversiktlig.

men om du ser i begynnelsen henter den ut den største id'en fra tabellen img. for at den verdien skal øke for hver gang du laster opp et bilde må du legge inn noe informasjon om det bildet som er lastet opp, jeg gjør det sånn:

require"../dbconnect.php";
$image_comment=$_POST["image_comment"];
$pic_link=$nyttnavn;
$thumb_name=$nyttnavn_thumb;
$gallery=$_POST["gallery"];
$pic_name=$HTTP_POST_FILES['userfile']['name'];

 $q="INSERT into img (`pic_name`,`pic_link`,`thumb_name`,`image_comment`,`gallery`)
VALUES ('$pic_name','$pic_link','$thumb_name','$image_comment','$gallery' )";
$result= mysql_query($q, $connection) or die ("Could not execute query : $query." . mysql_error());
echo"$pic_name";

 

legger med litt annen informasjon som hva bildet heter opprinnelig, hva bildet heter i opprinnelig størrelse, en kommentar som blir lagt til bildet og om det skal vises i et bildegalleri.

 

edit: hva mener du med siste url'en?

Endret av Smidt
Lenke til kommentar
  • 1 år senere...

Kan også annbefale min (Nic0) opplastningsklasse for bilder som kan det meste når det kommer til dette, har også sørget for stillbar jpg kvalitet (mindre kb = dårligere kvalitet)

 

Scriptet er laget så allt som trenger å modifiseres i ditt opplastningscript er å bytte ut move_uploaded_file() med min funksjon save() i klassen (de to parameterne i funksjonene er de samme)

 

http://norskwebforum.no/viewtopic.php?t=22753&start=0

 

Den ble tross allt laget for å spare mange andre tid.

Lenke til kommentar

Gadd ikke lese gjennom hele dette kjøttlasset av en tråd, men jeg vil tipse deg om at (forutsatt at du bruker GD2) du bruker imagecreatetruecolor() og imagecopyresampled(), da blir kvaliteten på resultatet mindre lollete. Regner med du har såpass ePenis at datamaskinen din takler den lille ekstrabelastningen som dette medfører.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...