Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zapis obrazów na zewnętrznym serwerze
Forum PHP.pl > Forum > Przedszkole
Krisu
Czy z poziomu php, bez zbędnych formularzy mogę zapisać obrazy na innym serwerze? Np na imageshack, fotosik, albo nawet swoim, gdzie mam ustawione prawa do katalogu na 777?

Chodzi o sposób:

  1. <?php
  2. imagepng($image, "http://nazwa_serwera/img/nazwa_obrazu.png");
  3. ?>


Ewentualnie, jeśli tym sposobem się nie da, to czy mogę to zrobić po przez upload, ale bez formularzy? Chodzi o to by działo się to w locie, bez żadnego klikania.

Zastanawiałem się jeszcze nad taką opcją, by stronę startową (z uuploadem plików) umieścić w niewidocznej ramce na mojej stronie i przesyłać do niej dane, a po wgraniu pliku wczytać ścieżkę do niego po przez wyciągnięcie odpowiedniego kodu ze źródła strony.
Tylko, czy tak się wogóle da?

Hop hop, czy ktoś odpowie??
ocochodzi
Taki serwis jak imageschack ma prawo w każdej chwili zmienić sposób zapisywania plików: nadawania im nazw, przydzielania miejsca itp. Poza tym czy oni pozwalaja po prostu uploadować pliki na serwer, z pominieciem własnej kontroli? Na zdrowy rozum polegałbym zatem na jego interfejsie, np. formularzu albo jakimś API sieciowym. Formularz może Twój skrypt wypełniać automatycznie, w końcu to tylko HTTP. Poszukaj jakiejs biblioteki do takich rzeczy, np. cURL (sam nie bawiłem się tym jeszcze). Nie masz jednak gwarancji, że coś w takim formularzu nagle się nie zmieni i Twoja funkcja przestanie działać. Wydaje mi się, że takie imageshacki są raczej dla zwykłych intenautów i nie ma co się ich funkcjonalnoscia sugerowac przy projektowaniu własnego serwisu. Przypuszczam, ze googlajac znajdziesz odpowiednik imageshacka dla webmasterów.

Cytat(Krisu)
<?php
imagepng($image, "http://nazwa_serwera/img/nazwa_obrazu.png");
?>[/php]


można poczytać manula:

http://fr.php.net/manual/en/function.imagepng.php

albo zadać sobie pytanie skad odległy serwer ma wiedzieć, ze mamy prawo coś tam zapisywać.
Krisu
Czyli mógłbym spróbować zrobić to za pomocą automatycznego wypełniania formularzy swoimi danymi, a np za pomocą js wywołać funkcje ktora, po spelnieniu warunku "kliknie" w przycisk?
ocochodzi
Cytat(Krisu @ 26.03.2008, 19:41:53 ) *
Czyli mógłbym spróbować zrobić to za pomocą automatycznego wypełniania formularzy swoimi danymi, a np za pomocą js wywołać funkcje ktora, po spelnieniu warunku "kliknie" w przycisk?



Jak już napisałem nie bawiłem się w takie rzeczy, ale skoro nie wypowiada się nikt inny...

Serwer dostaje żadanie HTTP przeglądarki. W tym żadaniu może być np. zawarty wypełniony formularz. W takim przypadku nie musi zajść coś takiego jak "kliknięcie". "Kliknieciem" dla serwera odbierajcego wypelniony formularz jest sam fakt odebrania żadania z wypelnionym formularzem - przegladarka wysyla je po kliknieciu w submit formularza, ale może to zrobić i skrypt PHP, a tam juz nikt przeciez nie klika. Teoretycznie wiec można to zrobić to za pomocą PHP na Twoim serwerze + jakas biblioteka do HTTP (po obejrzeniu zrodla strony z foremularzem do uploadu obrazków) co by wiedzieć jak zbudowac żadanie. Niestety imageshack najwyrazniej nie działa bez JS (zabezpieczenie przed botami ładujacymi pliki?), a symulacji JS to chyba (?) nie ma w PHP. Implementacja JS jest w przeglądarce, ale trudno mi sobie wyobrazić by cała rzecz działa się automatycznie po stronie klienta (user agent) Twojej aplikacji. Tzn, moze jakiś PRO developer byłby w stanie wymysleć takie cuda, ale to chyba tylko tak dla sportu, bo rozwiazanie (jesli jest) byloby nieeleganckie i pracochłonne.

Dałbym sobie spokój z takimi metodami. Po co Twoja aplikacja ma na siłę udawać zwykłego użytkownika imageshacka, fotosika itp. skoro na 100% są prostsze metody? Na chłopski rozum. Miałem konto na prywatna strone www na chello. Mogłem hotlinkowac do obrazków z tej strony. Rozejrzyj sie za zwykłym miejscem na jakims serwerze i tam FTPuj obrazki i hotlinkuj do nich jesli można hotlinkowac. Bez udawania, że Twoja aplikacja jest człowiekiem klikjacym na stornce imageshacka. Pogooglaj za sposobami FTPowania z poziomu PHP. Ja się tym tematem nie interesowałem, ale kilka razy napatoczyło mi się hasło cURL. Zobacz jak to działa.
Krisu
Wielkie dzięki, skorzystam z Twojej rady i zagłębię się w tajniki cURL, bo co do prostszych rozwiązań, nie mogę, gdyż moja aplikacja sama tworzy obrazy z danych tekstowych, których na prawdę trochę jest. Chodzi o samo przetrzymywanie tych obrazów, gdyż po mimo ich niewielkich rozmiarów (30-50kb) jest ich dużo. W taki też sposób muszę je przekierować na inny serwer a następnie wyciągnąć linka do nich.

Jeszcze raz dzięki za wskazówki smile.gif
pyro
Cytat(Krisu @ 27.03.2008, 15:17:59 ) *
Wielkie dzięki, skorzystam z Twojej rady i zagłębię się w tajniki cURL, bo co do prostszych rozwiązań, nie mogę, gdyż moja aplikacja sama tworzy obrazy z danych tekstowych, których na prawdę trochę jest. Chodzi o samo przetrzymywanie tych obrazów, gdyż po mimo ich niewielkich rozmiarów (30-50kb) jest ich dużo. W taki też sposób muszę je przekierować na inny serwer a następnie wyciągnąć linka do nich.

Jeszcze raz dzięki za wskazówki smile.gif


jezeli chcesz na hostingu typu imageshack uploadowac to rzeczywiscie za pomoca cURL, albo jesli chcesz wrzucac pliki jak wspomniales w pierwszym poscie na swoj serwer (bez formularza lub z) to wystarczy użyć funkcji FTP (wymagana biblioteka FTP PHP)
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.