Avatar billede unsafe Nybegynder
20. september 2005 - 20:39 Der er 5 kommentarer og
1 løsning

Resize billede ved upload

Jeg skal så siden ikke er så lang tid om at loade få det gjort sådan at når man uploader billeder i ens billede galleri i mit community skal den gemme det originale billede, men også et billede i en thumb mappe, eks original: images/galleri/img. Og thumb: images/galleri/thumb.

Den skal resize det til max 100 i brede og max 100 i højde og gemme det.

Her er koden jeg bruger nu :



if ($_FILES["picture"])
{
$picture_size = $_FILES["picture"]["size"];

if($picture_size > 216800) { header("Location: profil.galleri.php?action=add&gallid=$_GET[gallid]&error=tobig"); } else {

mysql_query("INSERT INTO galleri (user_id, kategori, overskrift, date, besked, vis)
values ('".$rst["id"]."',
'".$_POST["kategori"]."',
'".htmlspecialchars($_POST["overskrift"])."',
'".date("Y-m-j H:i:s")."',
'".htmlspecialchars($_POST["besked"])."',
'".$_POST["vis"]."')") or die (mysql_error());

$conn = mysql_query("SELECT id FROM galleri WHERE date = '".date("Y-m-j H:i:s")."' AND user_id = '".$rst["id"]."'") or die (mysql_error());
$rs = mysql_fetch_array($conn);

if ($_FILES["picture"])
{
$picture = $_FILES["picture"]["tmp_name"];
$picture_name = $_FILES["picture"]["name"];

if (eregi("(\.jpg)$", $picture_name))
{
copy($picture, "images/galleri/$rs[id].jpg");

mysql_query("UPDATE galleri SET bnavn = '$rs[id].jpg'
WHERE id = '".$rs["id"]."'") or die (mysql_error());

} elseif (eregi("(\.gif)$", $picture_name))
{
copy($picture, "images/galleri/$rs[id].gif");
mysql_query("UPDATE galleri SET bnavn = '$rs[id].gif'
WHERE id = '".$rs["id"]."'") or die (mysql_error());
}
}

header("Location: profil.galleri.php?upload=ok");

}



Håber i kan hjælpe :o) ! .
Avatar billede 17196 Nybegynder
20. september 2005 - 20:45 #1
Jeg har et liggende hvor kun .jpg er tilladt
Avatar billede coderdk Praktikant
20. september 2005 - 20:51 #2
Denne gør det for JPEG: http://php.coder.dk/resizeimg.php - Men den er nem at ændre ;)
Avatar billede unsafe Nybegynder
20. september 2005 - 23:13 #3
Den skulle også helst kunne gemme det i mappen thumb som id'et på det info/billede man opretter i mysql lige som det gør nu bare med det originale.

:o) . ?
Avatar billede unsafe Nybegynder
23. september 2005 - 15:49 #4
Hmm.
Avatar billede 17196 Nybegynder
23. september 2005 - 17:06 #5
Her er mit:
<?
  if(isset($_POST['Submit']))
  {
      $size = 175; // the thumbnail height
    $filedir = '../site_files/gfx/upload/'; // the directory for the original image
    $thumbdir = '../site_files/gfx/upload/thumb/'; // the directory for the thumbnail image
      $prefix = 'small_'; // the prefix to be added to the original name
      $maxfile = '1000000';
      $mode = '0666';
      $userfile_name = $_FILES['image']['name'];
      $userfile_tmp = $_FILES['image']['tmp_name'];
      $userfile_size = $_FILES['image']['size'];
      $userfile_type = $_FILES['image']['type'];
      if (isset($_FILES['image']['name'])) 
      {
          $prod_img = $filedir.$userfile_name;
          $prod_img_thumb = $thumbdir.$prefix.$userfile_name;
          move_uploaded_file($userfile_tmp, $prod_img);
          chmod ($prod_img, octdec($mode));
          $sizes = getimagesize($prod_img);
          $aspect_ratio = $sizes[1]/$sizes[0]; 
          if ($sizes[1] <= $size)
          {
              $new_width = $sizes[0];
              $new_height = $sizes[1];
          }else{
              $new_height = $size;
              $new_width = abs($new_height/$aspect_ratio);
          }
          $destimg=ImageCreateTrueColor($new_width,$new_height) or die('Problem In Creating image');
          $srcimg=ImageCreateFromJPEG($prod_img) or die('Problem In opening Source Image');
          ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die('Problem In resizing');
          ImageJPEG($destimg,$prod_img_thumb,90) or die('Problem In saving');
          imagedestroy($destimg);
         
      $date = date("d-m");
      $time = date("H:i");

//henter mysql info
include("../dbconnect.php");
$addlink =MYSQL_QUERY("INSERT INTO userpicupload (id_pic,prod_img,prod_img_thumb,new_width,new_height,date,time)". "VALUES ('NULL', '$prod_img', '$prod_img_thumb', '$new_width', '$new_height', '$date', '$time')");
         
      }
?>
                  <script language='javascript'>
parent.frames.location.href = '../profil.php'
                  </script>
<?
}
?>
<table width="500" border="0" cellpadding="0" cellspacing="0" class="border_bagg">
  <tr>
    <td align="center" valign="top" class="alm_tekst"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="std_bar">
          <tr>
            <td><div align="center">ADD PICTURE TO PROFILE</div></td>
          </tr>
        </table>
      <form method="POST" action="<? $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
                        Billede:
                          <br>
                        <input name="image" type="file" class="alm_tekst">
                          <br>
                        <input name="Submit" type="submit" class="alm_tekst" value="Send">
                          <br>
                          <br>
    </form></td>
  </tr>
</table>

Og her er table strukturen til mysql:
CREATE TABLE `userpicupload` (
  `id_pic` tinyint(4) NOT NULL auto_increment,
  `prod_img` text NOT NULL,
  `prod_img_thumb` text NOT NULL,
  `new_width` text NOT NULL,
  `new_height` text NOT NULL,
  `kategori` varchar(40) NOT NULL default '',
  `date` varchar(6) NOT NULL default '',
  `time` varchar(6) NOT NULL default '',
  PRIMARY KEY  (`id_pic`)
)
Avatar billede unsafe Nybegynder
23. september 2005 - 19:35 #6
Jeg fandt ud af det :-) men ellers tak ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester