Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]curl wysyłanie plików na serwer
bialko0019
post
Post #1





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

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


Witam. Chciałbym połączyć dwie możliwości które osobno umiem, ale ich połączyć własnie nie (IMG:style_emoticons/default/winksmiley.jpg)

Wgrywać plik na serwer umiem, wgrywać plik poprzez curl na inny serwer metodą post też umiem, jednak ten drugi gdy już plik wgrany jest na serwerze - ale nie ma tu logiki, bo po co wgrywać najpierw na swój serwer, a potem na inny ? Chciałbym od razu wgrać plik od siebie z dysku na inny serwer. I nie wiem jak - mój kod, który wgrywa plik, który już jest na serwerze - a chce zeby wgrać nie z serwera tylko z lokalnego dysku czyli z $_FILES :

  1. <?php
  2. $curl = curl_init();
  3. $postFields['foto'] = '@' . dirname(__FILE__) . 'startowa.png';
  4.  
  5. curl_setopt($curl, CURLOPT_URL, "http://up.programosy.pl");
  6. curl_setopt($curl, CURLOPT_POST, 1);
  7. curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
  8. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  9.  
  10. $strona = curl_exec($curl);
  11. ?>


czyli startowa.png to plik na serwerze w tym samym katalogu co skrypt. Jak wskazać ścieżkę by wgrał plik z dysku a nie z serwera ?
Go to the top of the page
+Quote Post
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Nie próbowałem, ale nie powinno być problemu w podstawieniu do curla tymczasowej nazwy przesłanego pliku:

  1. $postFields['foto'] = '@' .$_FILES['wgrany_plik']['tmp_name'];


Ew. problemem może być nazwą takiego pliku (śmieci zamiast startowa.png)

Ten post edytował l0ud 18.10.2010, 20:24:28
Go to the top of the page
+Quote Post
bialko0019
post
Post #3





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

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


Dziękuję za odpowiedź, ale właśnie w taki sposób próbowałem ;/

No bo bez sensu wgrywanie jest plików na swój serwer, a potem na inny, po czym kasowanie go ze swoje serwera - tracę w ten sposób za każdym razem transfer ...

?
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
No bo bez sensu wgrywanie jest plików na swój serwer, a potem na inny, po czym kasowanie go ze swoje serwera - tracę w ten sposób za każdym razem transfer ...

Przecież cURL-em i tak tracisz transfer, jedna chwała.

Nie lepiej zrobić dwa formularze?
Go to the top of the page
+Quote Post
bialko0019
post
Post #5





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

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


Co masz na myśli erix pisząc o dwóch formularzach ? (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No normalnie - odpowiednie action w formularzu wysyłania pliku? Tak czytam już któryś raz Twojego pierwszego posta i nie rozumiem, po kiego chcesz tu cURL-a używać. Chyba że o czymś nie wiemy.
Go to the top of the page
+Quote Post
bialko0019
post
Post #7





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

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


Cytat(erix @ 20.10.2010, 12:37:59 ) *
No normalnie - odpowiednie action w formularzu wysyłania pliku? Tak czytam już któryś raz Twojego pierwszego posta i nie rozumiem, po kiego chcesz tu cURL-a używać. Chyba że o czymś nie wiemy.



Jak już wcześniej wspomniałem, chcę wgrać obraz na inny serwer, niż ten, z którego jest zamieszczony skrypt - dlatego pomyślałem o cURL z tym, że mam problem, by wgrać plik z dysku lokalnego, a nie z serwera na którym jest skrypt - rozumiesz już mniej więcej?

Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jak już wcześniej wspomniałem, chcę wgrać obraz na inny serwer, niż ten, z którego jest zamieszczony skrypt

No to rozumiem, ale:

Cytat
dlatego pomyślałem o cURL z tym, że mam problem, by wgrać plik z dysku lokalnego, a nie z serwera na którym jest skrypt

Dlaczego nie możesz wysłać formularzem z celem ustawionym bezpośrednio na drugi serwer? Po co utrudniać?
Go to the top of the page
+Quote Post
bialko0019
post
Post #9





Grupa: Zarejestrowani
Postów: 294
Pomógł: 4
Dołączył: 19.12.2008

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


A jak to zrobić, by wysłać NIE na swój, tylko inny serwer ?
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A jak ustawiasz
  1. <form action="">

? (IMG:style_emoticons/default/winksmiley.jpg)
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: 9.10.2025 - 01:27