Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie i odczyt zdjęcia z bazy
Forum PHP.pl > Forum > Przedszkole
redelek
Wiatm wszystkich.
Mam problem z odebraniem zdjęcia z bazy danych myślałem że to może lokalnego serwera, ale przeniosłem do swojego prowajdera i to samo.
Problem jest w tym, że jak bym nie próbował go pobrać zdjęcia zawsze mam krzaczki sad.gif
http://redelek.net/kk/download.php

upload.php
  1. <form method="post" enctype="multipart/form-data">
  2. <table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
  3. <tr>
  4. <td width="246">
  5. <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
  6. <input name="userfile" type="file" id="userfile">
  7. </td>
  8. <td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
  9. </tr>
  10. </table>
  11. </form>
  12. <?php
  13.  
  14. if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
  15. {
  16. $fileName = $_FILES['userfile']['name'];
  17. $tmpName = $_FILES['userfile']['tmp_name'];
  18. $fileSize = $_FILES['userfile']['size'];
  19. $fileType = $_FILES['userfile']['type'];
  20.  
  21. $fp = fopen($tmpName, 'r');
  22. $content = fread($fp, filesize($tmpName));
  23. $content = addslashes($content);
  24. fclose($fp);
  25.  
  26. {
  27. $fileName = addslashes($fileName);
  28. }
  29.  
  30. $dbhost = 'localhost';
  31. $dbuser = 'root';
  32. $dbpass = '';
  33.  
  34. $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
  35.  
  36. $dbname = 'bin';
  37. mysql_select_db($dbname);
  38. $query = "INSERT INTO upload (name, size, type, content ) ".
  39. "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
  40.  
  41. mysql_query($query) or die('Error, query failed');
  42.  
  43.  
  44. echo "<br>File $fileName uploaded<br>";
  45. }
  46. ?>


download.php

  1. <html>
  2. <head>
  3. <title>Download File From MySQL</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. </head>
  6.  
  7. <body>
  8. <?php
  9. $dbhost = 'localhost';
  10. $dbuser = 'root';
  11. $dbpass = '';
  12.  
  13. $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
  14.  
  15. $dbname = 'bin';
  16. mysql_select_db($dbname);
  17.  
  18. $query = "SELECT id, name FROM upload";
  19. $result = mysql_query($query) or die('Error, query failed');
  20. if(mysql_num_rows($result) == 0)
  21. {
  22. echo "Database is empty <br>";
  23. }
  24. else
  25. {
  26. while(list($id, $name) = mysql_fetch_array($result))
  27. {
  28.  
  29. echo '<a href="download.php?id='.$id.'">'.$name.'</a> <br>';
  30.  
  31. }
  32. }
  33.  
  34. ?>
  35. </body>
  36. </html>
  37. <?php
  38. if(isset($_GET['id']))
  39. {
  40. // if id is set then get the file with the id from database
  41.  
  42. $dbhost = 'localhost';
  43. $dbuser = 'root';
  44. $dbpass = '';
  45.  
  46. $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
  47.  
  48. $dbname = 'bin';
  49. mysql_select_db($dbname);
  50.  
  51. $id = $_GET['id'];
  52. $query = "SELECT name, type, size, content " .
  53. "FROM upload WHERE id = '$id'";
  54.  
  55. $result = mysql_query($query) or die('Error, query failed');
  56. list($name, $type, $size, $content) = mysql_fetch_array($result);
  57.  
  58. header("Content-type: image/jpeg");
  59. echo $content;
  60.  
  61. }
  62.  
  63. ?>

Potrzebuję dla użytkownika żeby dodał sobie małe zdjęcie , taki avatar. Kurcze i nie wiem dlaczego tak się dzieje.

Dzieki za wskazówkę


Poprawiłem skrypt na co zwrócił mi uwagę NOSPOR
Problem mam nadal, bo w firefox dostaję komunikat , że nie można wyświetlić obrazka , a w chrome otwiera się strona ale pusta ze znaczkiem że nie moż znaleść obrazka. Będę wdzięczny za pomoc i sugestie dlaczego nie może pobrać obrazka z bazy.
nospor
Ja się pytam na czym polegałą twoja poprawa? Bo nadal wraz z obrazkiem dostajemy kod HTML!! Nic więc dziwnego ze ci się obrazek nie wyświetla skoro oprócz obrazka idzie wraz z nim kod HTML!
redelek
gdzie gdzie kobinuję zaprzęgam GD2 do pracy ale nadal jest problem. Naprawde w firefox nie ma błędu z header.
nospor
Bo wyłączyles wyswietlanie bledu ale blad sie nadal generuje. A sie nadal generuje bo ty ciagle wraz z obrazkiem wyświetlasz kod html. No kurka wodna nie widzisz o tego:
\
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>


questionmark.gifquestionmark.gifquestionmark.gif?
Przecież ty to ciągle generujesz wraz z obazkiem!

echo '<a href="download.php?id='.$id.'">'.$name.'</a> <br>';
To też jest kod HTML który generujesz i który też nie ma prawa iść wraz z obrazkiem. Jak idzie obrazek to ma iść tylko obrazek, nic więcej
redelek
no dobra już wywaliłem ale nadal babol, nie denerwuj się szukam rozwiązania, więc się zmienia treść
nospor
Cytat
, nie denerwuj się
A weź się nie denerwuj jak podajesz człowiekowi prostą rzecz: oprócz obrazka nie może nic iść a ten ciagle z posta na post prócz obrazka wysyła kod html.... Nadal tam jest kod html. O ten:
echo '<a href="download.php?id='.$id.'">'.$name.'</a> <br>';
Jak przy następnym poście nadal zobacze kod html, tym razem definitywnie zamknę. No ile się można bawić w kotka i myszke
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.