Avatar billede Slettet bruger
10. maj 2009 - 14:52 Der er 9 kommentarer og
1 løsning

mysql hjælp

Hej..
Jeg har fundet dette script som virker, men jeg vil gerne gemme det i mysql databasen..
Hvordan er det nu lige det gøres?:)
Jeg gemmer både det originale billed og en thumb fil i hver deres mappe..

<?php
include('config_filer/config.php');
//SETTINGS
$uploadDir        = 'upload/'; //Bibliotek, hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','gif','png'); //Hvilke filer vil vi acceptere bliver uploadet?
//THUMBS SETTINGS
$thumbDir        = 'thumbs/'; //Bibliotek, hvor thumbs gemmes - husk chmod 777
$thumbPrefix      = 'thumb_';  //Hvad skal tilføjes til originalt filnavn?
$thumbHeight      = 800;      //Thumb højde
$thumbWidth      = 800;      //Thumb bredde
$thumbQuality    = 85;        //Kvalitet af thumb, kan være fra 0 - dårligt til 100 - bedst

//Funktioner som bruges:
function getExtension($filename){
    return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}

function resize( $filename, $newfilename, $maxw, $maxh, $quality=85 )
{
  $extension = getExtension($filename);
  switch($extension)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      $srcim = imagecreatefromjpeg( $filename );
      break;
    case 'gif':
      $srcim = imagecreatefromgif( $filename );
      break;
    case 'png':
      $srcim = imagecreatefrompng( $filename );
      break;
    default:
      return false;
  }
  $ow = imagesx( $srcim );
  $oh = imagesy( $srcim );
  $wscale = $maxw / $ow;
  $hscale = $maxh / $oh;
  $scale = min( $hscale, $wscale );
  $nw = round( $ow * $scale, 0 );
  $nh = round( $oh * $scale, 0 );
  $dstim = imagecreatetruecolor( $nw, $nh );
  imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
  switch($extension)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      imagejpeg( $dstim, $newfilename, $quality );
      break;
    case 'gif':
      imagegif( $dstim, $newfilename );
      break;
    case 'png':
      $png_q = floor( abs( $quality / 10 - 9.9 ) );
      imagepng( $dstim, $newfilename, $png_q );
      break;
    default:
      return false;
  }
  imagedestroy( $dstim );
  imagedestroy( $srcim );
  return file_exists($newfilename);
}

//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
  //Har vi en fil?
  if(is_uploaded_file($_FILES['myFile']['tmp_name']))
  {
    //Filendelse
    $extension = getExtension($_FILES['myFile']['name']);
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes))
    {
      //Vi flytter filen fra tmp til vores UPLOADDIR
      if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name'])))
      {
          if(resize($uploadDir . basename($_FILES['myFile']['name']), $thumbDir . $thumbPrefix . basename($_FILES['myFile']['name']), $thumbWidth, $thumbHeight, $thumbQuality)){
              echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name']).') uploaded and resized succesfully</h3>     ';
          }else{
            echo '<h3 style="color:red;">File ('.basename($_FILES['myFile']['name']).') uploaded succesfully, but resize failed</h3>';
        }
      }
      else
      {
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>';
      }
    }
    else
    {
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }
  else
  {
    echo '<h3 style="color:red;">No file selected<h3>';
  }
}

//Vores form
echo '<form action="upload.php" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile"><br />';
echo '<input type="submit" name="myUpload" value="Upload file">';
echo '</form>';

?>
Avatar billede Slettet bruger
10. maj 2009 - 14:54 #1
Hvad helt præcist er det du gerne vil gemme i mysql databasen?
Navnene på alle filer der er blevet uploadede?
Avatar billede Slettet bruger
10. maj 2009 - 15:01 #2
Hov.:)
Jeg vil gerne gemme billednavn og link så jeg kan hente billederne igen derfra..
Avatar billede Slettet bruger
10. maj 2009 - 15:12 #3
Eller det er j så også bare navnet jeg skal gemme.. For linket laver jeg jo bare mappe/$billednavn
:)
Avatar billede Slettet bruger
10. maj 2009 - 15:25 #4
Jeg fandt selv ud af det:)
Avatar billede Slettet bruger
10. maj 2009 - 15:32 #5
Udskift "mysql_ip", "brugernavn", "kodeord" og "database_navn".
Opret et Table med felterne "navn" og "thumb_navn".
Så burde denne her virke, selvom den måske lige skal rettes lidt til.

$mysql = mysql_connect("mysql_ip","brugernavn","kodeord");
mysql_select_db("database_navn", $mysql);

$filnavn = mysql_real_escape_string($basename($_FILES['myFile']['name']), $mysql);
$thumbnavn = mysql_real_escape_string($thumbPrefix . basename($_FILES['myFile']['name']), $mysql);

mysql_query("INSERT INTO billeder (navn, thumb_navn)
VALUES ('$filnavn', '$thumbnavn')";
Avatar billede Slettet bruger
10. maj 2009 - 15:32 #6
Øv, nu havde jeg lige gjort mig så umage, men til gengæld lærer du også noget :)
Avatar billede Slettet bruger
10. maj 2009 - 15:34 #7
Jeg kom selv frem til samme resultat:) undskyld ulejligheden..
Avatar billede Slettet bruger
10. maj 2009 - 15:34 #8
Læs følgende side fra php manualen. Den omhandler dit problem:
http://dk.php.net/manual/en/function.html-entity-decode.php
Avatar billede Slettet bruger
10. maj 2009 - 15:35 #9
Nååh, nej. Det er jo html entities, undskyld. Finder lige på noget andet.
Avatar billede Slettet bruger
10. maj 2009 - 15:38 #10
Hov, forkert spørgsmål. Nej hvor er jeg forvirret nu.
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