Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: Upload + generowanie miniaturki
Forum PHP.pl > Forum > Gotowe rozwi±zania > Szukam
sirostr
Czy istnieje mo¿e skrypt, który uploaduje obrazek i dodatkowo generuje jego miniaturkê i zapisuje j± na serwerze?

Tak jak na photobuckecie jest na przyk³ad.
deejay3
szukam juz jakis czas czegos podobnego, mianowicie generowanie miniatury to raz ale ponadto przycinania wysylanego zdjecia i zmiany "wagi" pliku.
dla przykladu:
chce wyslac foto z aparatu cyfrowego na serwer, no ale jak wiadomo srednio takie zdjecie bez oborobki ma po 3-4MB. nie dosc ze chce zmniejszyc jego wielokosc ale wyciac jeszcze z niego tylko interesujacy fragment (cos typu CROP photoshopa)

wiem, ze jest cos takiego, nawet kiedys widzoalem gotowy skrypt wspolpracujacy z MySQL ale nie bylo mi to potrzebne w danym momencie wiec nawet nie pamietam gdzie to widzialem.

jakby ktos pamietal, albo wpadl na to, gdzie takiego czegos szukac, bede bardzo wdzieczny, a za gotoca jeszcze wdzieczniejszy winksmiley.jpg

pozdrowionka
sirostr
Ok
Pogrzebałem trochę i zrobiłem skrypt uploadu z generowaniem miniaturki na serwerze
Potrzebny jest do tego ImageMagick (na home.pl jest)
Skrypt ten działa na home.pl
Nie wiem jak na innych
Skrypt jest umieszczony w katalogu /upload
w katalogu upload jest jeszcze podkatalog /pliki, który przechowuje zdjęcia
  1. <?php
  2. echo '<?xml version="1.0" encoding="iso-8859-2"?>';
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  5. transitional.dtd">
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  9. <title>Upload zdjęć</title>
  10. </head>
  11. <h1>Upload zdjęć</h1>
  12. <body>
  13. <form enctype="multipart/form-data" action="index.php" method="POST">
  14. <input name="plik" type="file" />
  15. <input type="submit" value="Wyslij plik" />
  16. </form>
  17. <?php
  18. $plik_tmp = $_FILES['plik']['tmp_name'];
  19. $plik_nazwa = $_FILES['plik']['name'];
  20. $nazwa = explode('.',$plik_nazwa);
  21.  
  22. $plik_nazwa = $nazwa[0].'_'.time().'.'.$nazwa[1];
  23. $nazwa_mini = $nazwa[0].'_m_'.time().'.'.$nazwa[1];
  24.  
  25. echo $nazwa_mini;
  26.  
  27. $plik_rozmiar = $_FILES['plik']['size'];
  28.  
  29. if (!function_exists('mime_content_type'))
  30. {
  31.  function mime_content_type($file, $method = 0)
  32.  {
  33.  if ($method == 0)
  34.  {
  35.  ob_start();
  36.  system('/usr/bin/file -i -b ' . realpath($file));
  37.  $type = ob_get_clean();
  38.  
  39.  $parts = explode(';', $type);
  40.  
  41.  return trim($parts[0]);
  42.  }
  43.  else if ($method == 1)
  44.  {
  45.  // another method here
  46.  }
  47.  }
  48. }
  49.  
  50.  
  51.  
  52.  
  53. if(is_uploaded_file($plik_tmp))
  54. {
  55. $mime = mime_content_type($plik_tmp);
  56. if($mime == 'image/jpeg' OR $mime == 'image/png' OR $mime == 'image/gif')
  57. {
  58. move_uploaded_file($plik_tmp, "pliki/$plik_nazwa");
  59.  
  60. echo '<p>Adres do pliku<p>';
  61. echo '<textarea onclick="this.select()" rows="1" cols="75" readonly>http://aaa.pl/upload/pliki/'.$plik_nazwa.'</textarea>';
  62.  
  63. echo '<p>Adres do miniaturki</p>';
  64. echo '<textarea onclick="this.select()" rows="1" cols="75" readonly>http://aaa.pl/upload/pliki/'.$nazwa_mini.'</textarea>';
  65.  
  66. echo '<p>Kod HTML<p>';
  67. echo '<textarea onclick="this.select()" rows="1" cols="75" readonly><a href="/upload/pliki/'.$plik_nazwa.'">
  68. <img src="/upload/pliki/m'.$nazwa_mini.'" alt="" /></a></textarea>';
  69.  
  70. $komenda = 'convert /upload/pliki/'.$plik_nazwa.' -resize 450x170 /upload/pliki/'.$nazwa_mini;
  71. system($komenda);
  72. }
  73. else
  74. {
  75. echo '<h2>Zly format pliku</h2>';
  76. }
  77. }
  78. ?>
  79. </body>
  80. </html>
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-2024 Invision Power Services, Inc.