Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload zdjęć
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
arkadiusz_18
Więc tak witam jestem nowym uzytkownikiem tego forum ale na zadnym innym nie znalazłem rozwiazania mojego problemu.

A więc tak na poczatek potrzebuje skryptu uploadujacego zdjecia na serwer. Ale chciałbym aby odbywało sie to w taki sposób:

Uzytkownik wysyła zdjecie na serwer, ono jest przerabiane do odpowiedniego rozmiaru np z 1024 x 768 na 128 x 160 , plik jest zapisywany na dysku serwera i odrazu się wyświetla ze sciezką docelową ( po zamknięciu okienka ze zdjęciem, ślad po nim ginie), wszystko ma słuzyć temu zeby użytkowik mógł sobie swoje zdjęcie ściagnąć na komórkę. Wiec tak po kilkugodzinnym wertowaniu waszego forum znalazłem skrypt typu :

  1. <?php
  2.  
  3. if( isset($_POST['up']) && is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
  4. {
  5. $dir= "upload";
  6. $strUploadDir = $_FILES['userfile']['name'];
  7. $arr = pathinfo($strUploadDir);
  8. if($arr["extension"]=="gif" || $arr["extension"]=="jpg" || $arr["extension"]=="png" || $arr["extension"]=="jpeg")
  9. {
  10. if( move_uploaded_file( $_FILES['userfile']['tmp_name'], $dir."/".$strUploadDir ) )
  11. {
  12. echo 'Plik został pomyślnie uploadowany! <br />';
  13. }
  14. else
  15. {
  16. echo 'Upload pliku nie powiódł się!';
  17. }
  18.  
  19. }
  20. else
  21. {
  22. echo("Nieprawidłowy format pliku!<br />Wymagane formaty: *.jpg *.jpeg *.gif lub *.png");
  23. }
  24. }
  25. else
  26. {
  27. echo 'Wystąpił błąd podczas wysyłania pliku na serwer!';
  28. }
  29. ?>


Wszystko jest ok ale nie umiem dodac do tego połaczenia ftp...
Prosze o wyrozumiałosc i pomoc, chocby wskazówki lub jakies sugestje dotyczące tego skryptu. I czy instnieje może jakas alternatywna mozliwośc nawiązania połaczenia z serwerem i uploadowania tam pliku przez http.
i przy okazji nie chcąc tworzac nowego postu mam pytanie czy za pomoca crona da się ustawić czyszczenie dowolnego katalogu np co 24 godziny ?

Z góry dzieki za pomoc smile.gif
Cysiaczek
ten skrypt słuzy do wysyłania na serwer zdjęcia przez protokół HTTP.
Musisz po prostu przesłać zdjęcie za pomocą ftp (patrz www.php.net), a dopiero potem się nim bawić.
mario
poszukaj na forum

1. upload zdjecia na serwer
2. zrobienie miniaturki (najlepiej z losowa nazwa np. md5(date("YmdHis)))
3. zapis miniaturki w jakims katalogu
4. link do miniaturki
5. gosciu po zamknieciu okienka kasuje plik (wykonuje sie strona ze skryptem do kasowania pliku przy zamknieciu okna)
6. odpalony skrypt (np. ten do wyswietlania miniaturki) czysci katalog przy spelnionym warunku (czyli jezeli minie 24h od czasu utworzenia katalogu)

To jest moja propozycja. Na pewno odradzam upload przez FTP!!! Chyba ze dobrze zabezpieczysz swoj skrypt smile.gif
arkadiusz_18
Pieknie to brzmi, chiałbym tak zrobić... ale moje umiętności staneły na tym że udało mi sie wysłać, reszty nie potrafię. Tego też dokonałem po modyfikacji pewnego skryptu. Ale i co z tego potrzebne mi jeszcze generowanie nazwy to jest raz usówanie po zamknięciu i w miare dobre zabezpieczenie tego... Nie potrafię, nikt mi tego i tak pewnie nie napisze, albo nie pomoże w taki sposób zebym to zrozumiał za mało podstaw umiem.. Więc może zna ktoś jakis przynajmniej pokrewny skrypt, który mógłbym do tego zaadaptować ? Ogólnie dzieki za pomoc i trafne sugestje smile.gif
karawan
Może coś takiego, używam tego do ładowania obrazków do sklepu internetowego,

Obrazek można kasować przez funkcje która bedzie kasować obrazek odczytując jego date
myslę że można bybyło tą funkcję uruchamiać cronem


oto funkcje:


  1. <?php
  2.  
  3. function resizeImage($source, $max_x,$tekst,$tekst_style, $save_image, $jpeg_quality = 100)
  4.  
  5. {
  6.  /*
  7. * source - obrazek jpeg
  8. * max_y - maksymalna wysokosc pomniejszonego obrazka-->szerokosc jejt dodawana z proporcji wymiaru
  9. tekst -tekst do dodania na dole
  10. tekst_style - styl napisu od 0 do 5
  11. * save_image - nazwa pliku do ktorego zostanie zapisany nowy obrazek
  12. * jpeg_quality - jakosc powstalego obrazu jpeg - jezeli bedzie inny to argument jest nie wazny (domyslnie 100)
  13.    */
  14.  
  15.  
  16. if(@exif_imagetype($source) == IMAGETYPE_JPEG)
  17. {
  18.  $img_src = imagecreatefromjpeg($source);
  19.  
  20.  //rozmary starego :
  21.  $rozmiar_x = imagesx($img_src);
  22.  $rozmiar_y = imagesy($img_src);
  23.  
  24.  //rozmiary nowego
  25. $max_x=$max_x ;
  26.  $stosunek=$max_x/ $rozmiar_x;
  27. $max_y=$rozmiar_y*$stosunek;
  28.  
  29.  
  30. $new_img = imagecreatetruecolor($max_x, $max_y);
  31. //$background = imagecolorallocate($new_img, 255, 255, 255);
  32. //imagefill($new_img, 0, 0, $background);
  33.  
  34. imagecopyresampled($new_img, $img_src, 0, 0, 0, 0, $max_x, $max_y, $rozmiar_x, $rozmiar_y);
  35.  
  36. $rozmiar_czcionki="10";
  37. $srodek_x =1;
  38. $srodek_y =1;
  39. $kolor=Imagecolorallocate($new_img, 0,0,0);
  40. $kolor_tla=Imagecolorallocate($new_img, 255,255,255);
  41. if ($tekst<>'')
  42. {
  43. ImageFilledRectangle($new_img,0,($max_y-12),$max_x,$max_y,$kolor_tla);
  44. Imagestring($new_img, $tekst_style, 3, ($max_y-12), $tekst, $kolor);
  45. //ImageRectangle($new_img,0,($max_y-12),$max_x-1,$max_y-1,$kolor);
  46. }
  47. // imagestring ($new_img, $rozmiar_czcionki, 0, $kolor, $czcionka, $tekst) ;
  48. imagejpeg($new_img, $save_image, $jpeg_quality);
  49.  imagedestroy($new_img);
  50.  imagedestroy($img_src);
  51. // echo '<img src="'.$save_image.'" border="1">';
  52. return $save_image;
  53.  
  54. }
  55.  else
  56.  {
  57.  
  58.  print('<FONT color=red> Zły typ pliku, akceptowalny tylko .JPG lub .JPEG</FONT> $source:'.$source);
  59.  
  60. }
  61.  
  62.  
  63. }
  64. //end resize
  65.  
  66.  //--------------------------------------------------
  67. function upload($upload_dir,$upload_url)
  68. {
  69. $data=getdate();
  70. $dzisiaj='P'.$data['year'].''.$data['mon'].''.$data['mday'].''.$data['hours'].''.$data['minutes'].''.$data['seconds'].'_';
  71.  
  72. $temp_name = $_FILES['userfile']['tmp_name'];
  73. $file_name = $_FILES['userfile']['name'];
  74. $file_type = $_FILES['userfile']['type'];
  75. $file_size = $_FILES['userfile']['size'];
  76. $result = $_FILES['userfile']['error'];
  77.  
  78.  
  79. if( $file_type!= 'image/pjpeg'){
  80.  $message= "Program akceptowalny tylko .JPG lub .JPEG";
  81. }
  82.  
  83. $nazwa_docelowa=$dzisiaj.$file_name;
  84. $file_url = $upload_url.$nazwa_docelowa;
  85. $file_path = $upload_dir.$nazwa_docelowa;
  86.  
  87. //File Name Check
  88. if ( $file_name =="") {
  89. $message = "Invalid File Name Specified";
  90.  
  91. }
  92. //File Size Check
  93.  
  94. if ( $file_size > 1000000) {
  95. $message = "The file size is over 1 MB.<BR> Plik musi być mniejszy niż 1 MB.";
  96.  
  97. }
  98.  
  99. $result = move_uploaded_file($temp_name, $file_path);
  100. $message = ($result)?
  101.  '<B>Plik został wczytany :)</B>'
  102. :
  103. 'Coś poszło nie tak ||$file_url';
  104.  
  105.  
  106.  
  107.  
  108.  
  109. $data= array($message,$file_url,$nazwa_docelowa) ;
  110.  //tu musze zrobic return rynzch zmiennych do następnej funkcji resize
  111.  
  112.  return $data;
  113.  
  114. }
  115. //end_upload
  116.  
  117. //--------------------------------------------------------------------------------------
  118.  function formularz_upload($nrkategorii,$edytowany_produkt,$nowy)
  119. {
  120.  //formularz
  121.  
  122. <CENTER>
  123. <form style="margin-top : 0px; margin-bottom : 0px;"
  124. action="index.php?nrkategorii='.$nrkategorii.'&edytowany_produkt='.$edytowany_produkt.'&upload_zrobiony=tak&nowy='.$nowy.'#'.$edytowany_produkt.'"
  125. style="margin-top : 0px; margin-bottom : 0px; " name="upload" id="upload"
  126. ENCTYPE="multipart/form-data" method="post">
  127.  
  128. <A style="color : #483D8B; font-size : 10px; " title="po wczytaniu obraz będzie autoatycznie przekształcony">Obraz :</A>
  129. <input style="margin-top : 0px; margin-bottom : 0px;font-size : 10px; color : #228B22;"
  130. type="file" id="userfile" name="userfile" >
  131.  
  132. <input style="margin-top : 0px; margin-bottom : 0px; font-size : 10px; background-color : #00FF00;"
  133. type="submit" name="upload" id="upload" value="Wczytaj">';
  134.  
  135.  
  136. $site_name = $_SERVER['HTTP_HOST'];
  137. $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
  138.  
  139.  
  140. $upload_dir = "zdjecia_towarow/";
  141. $upload_url = $url_dir.'/'.$upload_dir;
  142. $message ="";
  143.  
  144.  
  145. //create upload_files directory if not exist
  146. //If it does not work, create on your own and change permission.
  147. if (!is_dir($upload_dir))
  148. {
  149. die ("katalog docelowy ('.$upload_url.') nie istnieje");
  150. }
  151.  
  152.  
  153. if (($_FILES['userfile']))
  154. {
  155.  
  156.  
  157. $data = upload($upload_dir,$upload_url);
  158.  
  159. $message=$data[0];
  160.  
  161.  
  162.  
  163. }
  164.  
  165.  
  166. if ($message!='') print '<CENTER>'.$message.'</CENTER>';
  167.  
  168. print'</form>
  169. </CENTER>';
  170.  
  171.  
  172. return $data;
  173. }
  174.  
  175.  
  176.  
  177.  
  178. ///**************KONIEC FUNKCJI*******************
  179. //***********************************************
  180. //**************************
  181. //wywolanie funkcji
  182. //**************************
  183.  
  184. //$data=formularz_upload();
  185. /*
  186. if ($data[1]!='')
  187. {
  188. $zmienna=resizeImage($data[1], 120,'www.domena.pl',1, 'przeksztalcone/male_'.$data[2], 60); 
  189. // (5 parametr opcjonalnie dla jpg)
  190. $zmienna='http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/'.$zmienna ;
  191. print '<BR><A href="'.$zmienna.'">'.$zmienna.'</A>';
  192.  
  193. $zmienna='http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/'.$zmienna ;
  194. print '<BR><A href="'.$zmienna.'">'.$zmienna.'</A>';
  195.  }
  196.  
  197. */
  198.  
  199. ?>
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.