Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zamienić zmienną (string) na strumień
nexis
post
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


  1. <?php
  2. $orgWidth = 800;
  3. $orgHeight  = 600;
  4. $thumbRatio = 5;
  5. list($width, $height) = getimagesize($_FILES['Filedata']['tmp_name']);
  6. if ($width/$height > $orgWidth/$orgHeight)
  7. {
  8. $orgHeight = ceil($height/($width/$orgWidth));
  9. } else {
  10. $orgWidth = ceil($width/($height/$orgHeight));
  11. }
  12. $thumbWidth = ceil($orgWidth/$thumbRatio);
  13. $thumbHeight = ceil($orgHeight/$thumbRatio);
  14. $source = imagecreatefromjpeg($_FILES['Filedata']['tmp_name']);
  15.  
  16. $orginal = imagecreatetruecolor($orgWidth, $orgHeight);
  17. imagecopyresampled($orginal, $source, 0, 0, 0, 0, $orgWidth, $orgHeight, $width, $height);
  18. ob_start(); 
  19. imagejpeg($orginal);
  20. $orginal = ob_get_contents();
  21.  
  22. $thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
  23. imagecopyresampled($thumb, $source, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $width, $height);
  24. ob_start(); 
  25. imagejpeg($thumb);
  26. $thumb = ob_get_contents();
  27.  
  28. $connection = ftp_connect($ftp['host']);
  29. ftp_login($connection, $ftp['user'], $ftp['pass']);
  30. ftp_chdir($connection, 'www');
  31.  
  32. ftp_chdir($connection, $ftp['orgDir']);
  33. ftp_fput($connection, $_FILES['Filedata']['name'] , $orginal, FTP_BINARY);
  34.  
  35. ftp_chdir($connection, $ftp['thumbDir']);
  36. ftp_fput($connection, $_FILES['Filedata']['name'] , $thumb, FTP_BINARY);
  37.  
  38. ftp_close($connection);
  39. ?>


Powyższy kod służy do zmiany rozmiaru zdjęcia wgranego za pomocą formularza i wgranie jego pomniejszonych wersji (dużej i miniaturki) na zdalny serwer FTP. Skrypt zwraca błąd:

Warning: ftp_fput() expects parameter 3 to be resource

Jak więc zamienić plik, który trzymam w zmiennej na strumień bez konieczności zapisywania pliku na serwerze i skorzystanie z funkcji ftp_put" title="Zobacz w manualu PHP" target="_manual?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Prym
post
Post #2





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

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


(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Przepraszam ale nie załapałem wiec proszę zebyś poprawił jesli cos zle załapałem (ale walnąłem tekst ech) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) :

masz formularz który uploaduje plik zdjęcia powiedzmy artykułu na serwer na którym masz równiez skrypt powyżej. wiec jeśli juz go masz na serwerze to po co chcesz go dogrywac ftp??
wiec ja proponuje żebyś to sobie podzielił na skladowe: upload pliku - zmiana nazwy przeniesienie z katalogu tymczasowego do katalogu finalnego - jako plik który uploadujesz bez zadnych modyfikacji.
  1. <?php
  2. $plik_nazwa_tmp = $_FILES['cos']["tmp_name"];
  3. $plik_nowa_nazwa = $_FILES['cos']["tmp_name"];
  4. if (is_uploaded_file($plik_nazwa_tmp)) {
  5. move_uploaded_file($plik_nazwa_tmp, $Katalog.$plik_nowa_nazwa);
  6. }
  7. ?>

nastepnie pobranie tego pliku w zależności od rozszerzenia

  1. <?php
  2. if (eregi(".jpg",$plik_nowa_nazwa)) $f = imagecreatefromjpeg($Katalog.$plik_nowa_nazwa);
  3. if (eregi(".png",$plik_nowa_nazwa)) $f = imagecreatefrompng($Katalog.$plik_nowa_nazwa);
  4. if (eregi(".gif",$plik_nowa_nazwa)) $f = imagecreatefromgif($Katalog.$plik_nowa_nazwa);
  5. ?>


prtzebudowanie go jak chcesz (wysokosc szerokosc kolorki czy co tam sobie zyczysz i masz wene nastepnie poprstu zapisanie plikow na serwerze nadajac inne nazwy poprzez:

  1. <?php
  2. if (eregi(".jpg",$plik_nowa_nazwa)) {imagejpeg($zmienione,$Katalog."m_".$plik_nowa_nazwa,75);}
  3. if (eregi(".png",$plik_nowa_nazwa)) {imagepng($zmienione,$Katalog."m_".$plik_nowa_nazwa);}
  4. if (eregi(".gif",$plik_nowa_nazwa)) {imagegif($zmienione,$Katalog."m_".$plik_nowa_nazwa);}
  5. ?>


powyższe są wycinkami całości funkcji ktora z sukcesami uzywam do sklaowania zdjec po wrzucie na serwer przez formularz i do tego ftp niejest ci wogle potrzebne chyba ze masz to na innym serwerze i nie da sie inaczej tych plikow tam zapisac.

jak nie chodziło o to to sorki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Prym 30.10.2007, 15:40:11
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 23:18