Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zamienić zmienną (string) na strumień
Forum PHP.pl > Forum > Przedszkole
nexis
  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?
Prym
questionmark.gif Przepraszam ale nie załapałem wiec proszę zebyś poprawił jesli cos zle załapałem (ale walnąłem tekst ech) 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 smile.gif
nexis
Cytat(Prym @ 30.10.2007, 15:39:02 ) *
jak nie chodziło o to to sorki smile.gif


Poświadomie jednak wiedziałeś, że Twoja odpowiedź nie będzie pomocna. W skrócie pytam się jak coś zrobić, a Ty odpowiadasz: nie rób tego. winksmiley.jpg

W skrócie powiem dlaczego chcę tak właśnie zrobić: panel administracyjny jest na jednym serwerze, a strona na drugim.
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.