Avatar billede TiHs Nybegynder
17. maj 2014 - 22:10 Der er 5 kommentarer og
1 løsning

echo blob image fra mysql tabel

Hej

Jeg har følgende tabel:

`userimages` (
  `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
  `image` blob NOT NULL,
  `usr` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

forsøger med følgende kode:

echo "<img src=\"...sti/userpicget.php?id=$pic\"/>";

og min userpicget.php

<?php

$usr_id = $_GET['id'];

  $data = mysql_query("Select image from userimages where usr = $usr_id");

  while($data = mysql_fetch_assoc($query)){
      $image=$data['image'];
      header("content-type: image/jpeg");
      echo $image;
  }
?>

Men stadig vises intet billede på min side ....
Hvor er det jeg har glemt noget ?
Avatar billede arne_v Ekspert
17. maj 2014 - 22:17 #1
Hvor etablerer du connection henne?
Avatar billede TiHs Nybegynder
17. maj 2014 - 23:31 #2
Det gør jeg også i userpicget.php .... havde bare ikke lige lagt den med her på siden .... men den er der skam :)
Avatar billede sessingo Nybegynder
18. maj 2014 - 06:07 #3
Husk at escape din sql-query, så du undgår injections http://dk1.php.net/manual/en/function.mysql-escape-string.php

eller minimum

http://dk1.php.net/manual/en/function.addslashes.php

Det er utroligt ressourcekrævende for databasen og ikke mindst  serveren at generere billedet hver gang billedet loades, så vil på det kraftigste anbefale dig at lave thumbnails og gemme dem lokalt på disken og så generelt holde dig fra at smide billeder i databasen, da det efter min erfaring ikke er det værd når du kommer op i store mængder af data.

Det er svært at fortælle dig hvad der går galt - for din kode er helt fint (husk at lukke din database forbindelse efter du har vist billedet). Men prøv at fjern header da det skjuler eventuelle fejl og smæk url'en i din browser (så du kan se output direkte), så kommer der højest sandsynligt en php-fejl som du kan smide ind her, så vi kan hjælpe dig videre.

Held og lykke med det.

- Simon
Avatar billede TiHs Nybegynder
18. maj 2014 - 20:11 #4
Okay ... tror jeg dropper blob og gemmer filer på server istedet. Så må jeg skrive php'en upload så den gemmer filnavnet som brugernavn.jpg .... det må være bedre/nemmere :o)
Avatar billede TiHs Nybegynder
18. maj 2014 - 23:20 #5
Når nu jeg vælger at gemme billeder på serveren har jeg behov for at give dem et bestemt navn. Ikke fil-endelse men navn.

Denne kode gemmer fint mine filer, men jeg vil gerne omdøbe dem:

<?php
$usr_id = ($_POST['usr_id']);

$target_path = "../images/profilepics/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}
?>

Hvordan gør jeg det ?

her er min form:

$user =& JFactory::getUser();
$usr_id = $user->get('username');

echo "<form enctype=\"multipart/form-data\" action=\"http://villaholdet.com/administrator/userpic.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1024000\" />";
echo "Choose a file to upload:";
echo "<input name=\"uploadedfile\" type=\"file\" />";
echo "<input name=\"usr_id\" value=\"$usr_id\" type=\"hidden\" />";
echo "<br />";
echo "<input type=\"submit\" value=\"Opload fil\" />";
echo "</form>";
Avatar billede TiHs Nybegynder
19. maj 2014 - 12:01 #6
Lukket. Ny oprettet
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