Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> generowanie grafiki
Gordon1x
post 6.08.2007, 09:05:22
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. define('FILE_APPEND', 1);
  3.  
  4. include("configs/conf.php");
  5.  
  6. mysql_pconnect ("$mysql[host]", "$mysql[login]", "$mysql[pass]") or
  7.  die ("Nie można połączyć się z bazą danych");
  8. mysql_select_db ("$mysql[baza]") or
  9.  die ("Nie można połączyć się z bazą danych");
  10.  
  11. $sql_grafika = "SELECT * FROM galeria WHERE id = '$pathimg' LIMIT 1";
  12. $result_grafika = mysql_query($sql_grafika);
  13. $row_grafika = mysql_fetch_assoc($result_grafika);
  14.  
  15. $obrazek = $row_grafika['obrazek'];
  16. $typ_pliku = $row_grafika['obrazek_mime'];
  17. $nazwa_pliku = $row_grafika['obrazek_name'];
  18. $rozmiar_pliku = $row_grafika['obrazek_size'];
  19.  
  20. function file_put_contents($n, $d, $flag = false){
  21.  $mode = ($flag == FILE_APPEND || strtoupper($flag) == 'FILE_APPEND') ? 'a' : 'w';
  22.  $f = @fopen($n, $mode);
  23.  if ($f === false){
  24. return 0;
  25.  }
  26.  else {
  27. if (is_array($d)) $d = implode($d);
  28.  $bytes_written = fwrite($f, $d);
  29.  fclose($f);
  30.  return $bytes_written;
  31. }
  32. }
  33.  
  34. $filename = tempnam('', '');
  35. file_put_contents($filename, $obrazek);
  36.  
  37. list($width, $height) = getimagesize($filename);
  38.  
  39. $image_p = imagecreatetruecolor($xsize, $ysize);
  40. $image = imagecreatefromjpeg($filename);
  41. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $xsize, $ysize, $width, $height);
  42.  
  43. unlink($filename);
  44.  
  45. // Jeśli chcesz znać rozmiar nowego obrazka
  46.  
  47.  imagejpeg($image_p, null, $quality);
  48.  $image_data = ob_get_contents();
  49.  
  50. $file_size = strlen($image_data);
  51.  
  52. header("Content-type: $typ_pliku");
  53. header("Content-lengtt: $file_size");
  54. header("Content-Disposition: attachment; filename = $nazwa_pliku");
  55. print ("$image_data");
  56. ?>


Jak prezrobić ten skrypt aby najpierw skrypt sprawdił czy plik jest zapisany w katalogu imagetemp (jeżeli jest to żeby go wysłał).
Jeżeli plik nieistnieje to żeby go wygenerował i zapisał do katakogu pod nazwą $nazwa = $nazwa_pliku i wysłał go do użytkownika.
Go to the top of the page
+Quote Post
Kicok
post 6.08.2007, 10:06:58
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


1. file_exists" title="Zobacz w manualu PHP" target="_manual - sprawdzamy, czy plik istnieje jeśli nie to:
- generujemy obrazek
- imagejpeg" title="Zobacz w manualu PHP" target="_manual zapisujemy do na dysku

2. header" title="Zobacz w manualu PHP" target="_manual wysyłamy nagłówki
3. readfile" title="Zobacz w manualu PHP" target="_manual wysyłamy plik


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
Gordon1x
post 6.08.2007, 13:02:28
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. define('FILE_APPEND', 1);
  3.  
  4. include("configs/conf.php");
  5.  
  6. mysql_pconnect ("$mysql[host]", "$mysql[login]", "$mysql[pass]") or
  7.  die ("Nie można połączyć się z bazą danych");
  8. mysql_select_db ("$mysql[baza]") or
  9.  die ("Nie można połączyć się z bazą danych");
  10.  
  11. $sql_grafika = "SELECT * FROM galeria WHERE id = '$pathimg' LIMIT 1";
  12. $result_grafika = mysql_query($sql_grafika);
  13. $row_grafika = mysql_fetch_assoc($result_grafika);
  14.  
  15. $obrazek = $row_grafika['obrazek'];
  16. $typ_pliku = $row_grafika['obrazek_mime'];
  17. $nazwa_pliku = $row_grafika['obrazek_name'];
  18. $rozmiar_pliku = $row_grafika['obrazek_size'];
  19.  
  20. function file_put_contents($n, $d, $flag = false){
  21.  $mode = ($flag == FILE_APPEND || strtoupper($flag) == 'FILE_APPEND') ? 'a' : 'w';
  22.  $f = @fopen($n, $mode);
  23.  if ($f === false){
  24. return 0;
  25.  }
  26.  else {
  27. if (is_array($d)) $d = implode($d);
  28.  $bytes_written = fwrite($f, $d);
  29.  fclose($f);
  30.  return $bytes_written;
  31. }
  32. }
  33.  
  34. $filename = "imagetemp/$nazwa_pliku";
  35.  
  36. if (file_exists($filename)){
  37.  $imagedata = readfile($filename);
  38.  $file_size = ""; // problem
  39. }
  40. else{
  41.  $filename = tempnam('', '');
  42.  file_put_contents($filename, $obrazek);
  43.  
  44.  list($width, $height) = getimagesize($filename);
  45.  
  46.  $image_p = imagecreatetruecolor($xsize, $ysize);
  47.  $image = imagecreatefromjpeg($filename);
  48.  imagecopyresampled($image_p, $image, 0, 0, 0, 0, $xsize, $ysize, $width, $height);
  49.  
  50.  unlink($filename);
  51.  
  52.  // Jeśli chcesz znać rozmiar nowego obrazka
  53.  
  54.  $link = "imagetemp/$nazwa_pliku";
  55.  
  56. imagejpeg($image_p, $nazwa_pliku, $quality);
  57. $image_data = ob_get_contents();
  58.  
  59.  $file_size = strlen($image_data);
  60.  
  61. }
  62.  
  63. header("Content-type: $typ_pliku");
  64. header("Content-lengtt: $file_size");
  65. header("Content-Disposition: attachment; filename = $nazwa_pliku");
  66. print ("$image_data");
  67. ?>


Tylko jak odczytać rozmiar już zapisanego pliku.
Go to the top of the page
+Quote Post
Kicok
post 6.08.2007, 14:32:18
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


filesize" title="Zobacz w manualu PHP" target="_manual


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 12:54