Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pobranie obrazka z adresu url, Ograniczenia kofingu serwa
pzcjnr
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.03.2009

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


Witam,

Przygotowuje sobie skrypt który ma przed sobą z pozoru proste zadanie. Zapisać na ftp obrazek z podanego adresu url.

Problem się pojawił gdyż na serwerze jest wyłączone pobieranie plików z adresów zewnętrznych i nie mogę używać funkcji fopen, file_get_contents etc bo mam błąd typu:
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in

Nie mam możliwości ingerencji w konfig serwera więc co mi pozostaje? Szukam alternatyw.
Do głowy mi przychodzi curl. Jest jednak problem, stworzyłem coś takiego:

  1. $id = mysql_insert_id();
  2. $c = curl_init();
  3. $file = fopen($image, 'w+');
  4. curl_setopt($c, CURLOPT_URL, $image);
  5. curl_setopt($c, CURLOPT_HEADER, 0);
  6. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla 5.0');
  8. curl_setopt($c, CURLOPT_FILE, $file);
  9. $wynik=curl_exec($c);
  10. fclose($file);
  11. $nazw = '/'.$obrazki.'id'.$id.'.'.$rozsz.'';
  12. file_put_contents($nazw,$wynik);
  13. curl_close($c);


niestety nie działa... nie zapisuje na ftp. Kto mi coś doradzi?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


używasz fopen(który podobno nie działa) z tym samym adresem co curl?

  1.  
  2. $url = 'http: // www. domena. pl/'; //usuń spacje
  3.  
  4. $c = curl_init();
  5. curl_setopt($c, CURLOPT_URL, $url);
  6. curl_setopt($c, CURLOPT_HEADER, 0);
  7. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla 5.0'); //co to za useragent?
  9. $wynik=curl_exec($c);
  10. curl_close($c);
  11.  
  12. $nazw = '/'.$obrazki.'id'.$id.'.'.$rozsz.'';
  13. file_put_contents($nazw,$wynik);
  14.  

Go to the top of the page
+Quote Post
pzcjnr
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.03.2009

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


Dzięki, ale jest jeden problem.

Warning: file_put_contents(/images/fot/id14.jpg) [function.file-put-contents]: failed to open stream: No such file or directory in...
na ftp mam folder images mam folder fot. fot ma 777 chmod. Oczywiście pliku id14.jpg tam nie ma bo on dopiero ma się zapisać. Chyba nie da rady z tym file_put_content...
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Chyba nie da rady z tąką ścieżką... Usuń "/" sprzed "images"
Go to the top of the page
+Quote Post
pzcjnr
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.03.2009

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


Po usunięciu "/" też nie działa. A to dlatego, że plik ze skryptem jest w lokalizacji /acp/dodaj.php Chce zapisać do /images/fot/
Manipulując ścieżką udaje mi się zapisać grafikę do katalogu /acp/.

Tylko pytanie teraz jak zapisać ścieżkę dobrze. jak wpisze /images/fot/ nie działa, jak wpisze images/fot/ też nie działa bo w takim wypadku szuka mi katalogu images w folderze /acp/ . jak więc zapisać ścieżkę żeby skrypt pierw "wrócił" do katalogu głównego i dopiero potem przeszedł do /images/fot/ i zapisał tam?

Ten post edytował pzcjnr 30.08.2011, 11:37:36
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Poczytaj o ścieżkach względnych i bezwzględnych. Po ich lekturze powinieneś sam dojść co jest nie tak (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
pzcjnr
post
Post #7





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.03.2009

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


Dzięki wszystkim, już działa (IMG:style_emoticons/default/smile.gif)

  1. $id = mysql_insert_id();
  2. $c = curl_init();
  3. curl_setopt($c, CURLOPT_URL, $image);
  4. curl_setopt($c, CURLOPT_HEADER, 0);
  5. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
  7. $wynik=curl_exec($c);
  8. curl_close($c);
  9. $basedir = $_SERVER['DOCUMENT_ROOT'];
  10. $nazw = $basedir.'/'.$obrazki.'id'.$id.'.'.$rozsz.'';
  11. file_put_contents($nazw,$wynik);
  12.  
  13.  


Ten post edytował pzcjnr 30.08.2011, 11:50:29
Go to the top of the page
+Quote Post

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: 22.08.2025 - 15:14