Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Szereg operacji na uploadowanym pliku
Forum PHP.pl > Forum > Przedszkole
raf_79
Witam wszystkich forumowiczów smile.gif

Mam problem z uploadem sad.gif Wiem wiem było tego sporu tu i gdzie indziej ale nie potrafie znaleźć odpowiedzi jednoznacznej na mój problem a jest następujący.
Potrafie uploadować plik, nadać mu odpowiednią nazwe zapisać go na serwie, oraz potrafie wziąść ten plik i w czasie wyświetlania nałożyć na niego inny obrazek (np z logo strony i z adresem strony) ale nie potrafie tego zrobić w jednym kroku znaczy upload z modyfikacją tego uplodowanego pliku:( czy moze mi ktoś udzielić kilku wskazówek smile.gif


Pozdrawiam

Raf

ps. jeżeli potrzebne będa skrypty to wstawie smile.gif
TomASS
Cytat
wziąść ten plik i w czasie wyświetlania nałożyć na niego inny obrazek (np z logo strony i z adresem strony)

A jak sie "bierze" plik i nakłada na niego "inny" obrazek ? smile.gif
chomiczek
wstaw jakiś kawałek kodu.. chodzi Ci zapewne o to, że wrzucasz fotke i potem nakładasz na nią np. obraz z logiem Twojego serwisu. Sądze, że nie ma problemu, żeby zrobić to na raz.
raf_79
oki to kody smile.gif
tu jest kod "tworzenia" nowego obrazka tło z innym :

  1. <?php
  2. if( array_key_exists( 'img', $_GET ) )
  3. {
  4.  $sciezka = "obrazek.jpg";
  5.  list($szerokosc, $wysokosc, $type, $attr) = getimagesize($sciezka);
  6.  $sygnaturka_nazwa = "sygnaturka.gif";
  7.  $sygnaturka = imagecreatefromgif("$sygnaturka_nazwa"); //utworzenie nowego obrazka na bazie istniejacego
  8.  $wgrywany = imagecreatefromjpeg("$sciezka"); //utworzenie nowego obrazkana bazie istniejacego
  9.  $nowy = imagecreatetruecolor($szerokosc, $wysokosc); //stworzenie nowego pustego obrazka o danej wys i szer
  10.  imagecopyresampled($nowy, $wgrywany, 0, 0, 0, 0, $szerokosc, $wysokosc, $szerokosc, $wysokosc); //skopiowanie do pustego obrazka juz czegos
  11.  $sygnaturka_wysokosc = $wysokosc - 240;
  12.  $sygnaturka_szerokosc = 10;//$szerokosc - 88;
  13.  $obrazek = ImageCopy($nowy, $sygnaturka, $sygnaturka_szerokosc, $sygnaturka_wysokosc, 0, 0, 55, 230);//dokopiowanie do juz istenijacego czegos 
  14.  
  15.  header("Content-type: image/jpeg");
  16.  header("Content-disposition: filename=\"obrazek.jpg\"");
  17.  
  18.  imagejpeg($nowy,"zdj.jpg", 70); // !1! zapisanie nowego obrazka 
  19.  imagejpeg($nowy,"", 70); //wyswietlenie nowego obrazka bez zapisu
  20.  ImageDestroy($wgrywany);
  21.  ImageDestroy($nowy);
  22.  exit;
  23. }
  24. ?>


no i wświetlenie go
  1. <title>sygnaturka</title>
  2. </head>
  3. <img src="<?= $_SERVER[ 'PHP_SELF' ]; ?>?img"/>
  4. </body>
  5. </html>

to takie uczyłem się na tym więc pewnie można zrobić pare zmian
w linijsce z komentarzem !1! można zapisać plik ale nie wiem jak to się ma do uploadu no i jest header więc chyba nic przed tym nie możnawysłąć do przeglądarki no chyba ze będzie się buforowało ......

no a kod do uploadu jest standardowy :

  1. <?php
  2.  
  3.  if (strlen ($_FILES['plik'.$i]['name']) != 0)
  4.  {
  5. $p = $d_id."_".$i.".".$roz[$i][1];
  6. $pytanie = "INSERT INTO `zdjecia`( `zdjecie_id` , `dana_id` , `zdjecie` , numer )
  7. VALUES ('', '{$d_id}', '{$p}',{$i})";
  8. $wynik = mysql_query ($pytanie);
  9. if ($wynik)
  10. {
  11.  if (move_uploaded_file ($_FILES['plik'.$i]['tmp_name'], "../zdj_dane/$p" ))
  12. echo "Plik {$p} na serwerze <BR>";
  13.  else
  14. echo "PLIK {$p} nie przeniesiony <BR";
  15. }
  16.  }
  17.  
  18. ?>

to jest kawałek tylko wcześniej dodaje sobie coś innego i biore id tamtego wiersza i w ten sposób mam w jednej bazie tekst a w drugiej zdjęcia (ich nazwy)

Nio o tyle z kodów smile.gif

Pozdrawiam miłego dzionka
Raf

edit po główkowaniu oki są tamte dwa kody połączyłem je i działa mi to ale nei wiem czy to nei jest droga okrężna zrobiłem to tak

  1. <?php
  2.  
  3.  if (isset ($_POST['submit']))
  4.  {
  5. $roz [1] = explode ('.', $_FILES['plik']['name']);
  6. $p = "1.".$roz[1][1];
  7.  
  8.  
  9. move_uploaded_file ($_FILES['plik']['tmp_name'], "grafika/$p" );
  10.  
  11. $sciezka = "grafika/{$p}";
  12. list($szerokosc, $wysokosc, $type, $attr) = getimagesize($sciezka);
  13. $sygnaturka_nazwa = "sygnaturka.gif";
  14. $sygnaturka = imagecreatefromgif("$sygnaturka_nazwa"); //utworzenie nowego obrazka na bazie istniejacego
  15. $wgrywany = imagecreatefromjpeg("$sciezka"); //utworzenie nowego obrazkana bazie istniejacego
  16. $nowy = imagecreatetruecolor($szerokosc, $wysokosc); //stworzenie nowego pustego obrazka o danej wys i szer
  17. imagecopyresampled($nowy, $wgrywany, 0, 0, 0, 0, $szerokosc, $wysokosc, $szerokosc, $wysokosc); //skopiowanie do pustego obrazka juz czegos
  18. $sygnaturka_wysokosc = $wysokosc - 240;
  19. $sygnaturka_szerokosc = 10;//$szerokosc - 88;
  20. $obrazek = ImageCopy($nowy, $sygnaturka, $sygnaturka_szerokosc, $sygnaturka_wysokosc, 0, 0, 55, 230);//dokopiowanie do juz istenijacego czegos 
  21.  
  22. imagejpeg($nowy,"zdj.jpg", 70); //zapisanie nowego obrazka
  23. ImageDestroy($wgrywany);
  24. ImageDestroy($nowy);
  25.  
  26.  }
  27. //formularz pobierania
  28.  echo "<FORM enctype=\"multipart/form-data\" ACTION=\"{$_SERVER['PHP_SELF']}\" METHOD=\"POST\">";
  29.  echo "<BR><INPUT TYPE=\"file\" NAME=\"plik\" SIZE=\"40\">";
  30.  echo "<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Wyslij\">";
  31.  echo "</FORM>";
  32.  
  33. ?>


Znaczy najpierw ładuje plik naserwer a potem go "przerabiam" czy dobrze do tego podszedłęm questionmark.gif czy mozna to zrobić w kolejności najpierw przerobić a potam zapisać smile.gif bo w tej kolejnosci mi nei chce działać sad.gif

Pozdrawiam
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.