Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] zapis obrazów na zewnętrznym serwerze
Krisu
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


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??

Ten post edytował Krisu 25.03.2008, 11:40:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
ocochodzi
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 2
Dołączył: 27.02.2007

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


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ć.
Go to the top of the page
+Quote Post
Krisu
post
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


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?
Go to the top of the page
+Quote Post
ocochodzi
post
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 2
Dołączył: 27.02.2007

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


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.
Go to the top of the page
+Quote Post
Krisu
post
Post #5





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


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
Go to the top of the page
+Quote Post
pyro
post
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


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)

Ten post edytował pyro 27.03.2008, 17:41:07


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 18:31