![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Za pomocą skryptu na swoim serwerze próbuję zgrać plik z innego url. Plik zapisuje się na moim serwerze funkcją fwrite() lub file_put_contents().
Po użyciu $save_to = "C:\\katalog\\plik.roz" plik i tak zapisał mi się w domyślnym katalogu serwera pod nazwą "c:katalogplik.roz". Jak zapisać plik bezpośrednio na dysku? Ewentualnie pobrać ten plik z serwera, z którego uruchamiany jest skrypt? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Może tak C:/katalog/plik.roz chociaż wątpię, skoro zapisujesz to przez php to zapisze się tylko tam gdzie dostęp ma, czyli w obrębie serwera a nie całego dysku.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie skrypt uruchamiany jest na serwerze i ściąga plik z jeszcze innej lokalizacji. Z zapisem na serwer nie ma problemu, ale chciałbym pominąć zapis na serwerze i mieć bezpośredni download. Ewentualnie zapis na serwer, download i usunięcie pliku z serwera.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ściągnij plik na serwer, a potem z serwera przerzuć do katalogu końcowego z uprawnieniami dla skryptu.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem (IMG:style_emoticons/default/sad.gif)
Ściągnąć na serwer? Nie ma problemu. Plik się kopiuje z innego serwera na mój. Ale jak go ściągnąć na dysk tym samym skryptem? Jest do tego jakaś funkcja? Czy może źle podaję ścieżki w fwrite()? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
To zaraz po pobraniu wymuś ściągnięcie go przez przeglądarkę
Kod header("Content-type: application/octet-stream"); header("Content-Length: " . filesize('image.jpg')); header('Content-Disposition: attachment; filename="image.jpg"'); readfile('image.jpg'); lub zwyczajnie daj do niego link. A jak koniecznie chcesz zapisać go na dysk, to użyj jakiegoś skryptu zewnętrznego który php uruchomi (bo nie jestem pewien czy da się zapisać plik poza obszar) np. w bashu, python. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
OK, takie rozwiązanie otwiera mi okno "zapisz plik jako" i mógłbym go zapisac na dysku, ale..... plików tych będzie więcej (IMG:style_emoticons/default/smile.gif) Więc chciałbym żeby skrypt robił download bez czekania na moje klikanie.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował kpt_lucek 6.05.2012, 14:34:42 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Używając
plik zapisuje się w domowym folderze serwera pod nazwą c:katalogplik.roz. Czyli że co, nie da się skryptem php skopiować pliku z serwera na dysk?? (IMG:style_emoticons/default/sad.gif) No dobra. Skoro skrypt z serwera nie wie co to dla niego "c:\" więc może przez moje IP dostępne z zewnątrz? Powiedzmy, że udostępniłem katalog "d:\katalog", mam stałe IP zewnętrzne to jaka powinna być ścieżka dla copy()? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Aby zapisać coś poza obszar serwera musisz wykorzystać zewnętrzne skrypty które będą działać w powłoce systemu, a które bedą uruchamiane z poziomu php. Pomyśl jaka byłaby to bzdura gdyby skrypt php mógł zapisać Ci pliki na pulpicie lub kasować katalog c:/windows a jeśli to nie ma być zapisywane na Twojej maszynie, to tym bardziej tego nie zrobisz. Musisz wtedy pakować pliki w ZIP i podać do nich link.
Ten post edytował !*! 6.05.2012, 15:11:19 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Owszem, zgodzę się. Ale jeśli mam IP, mój komputer powinien być widziany przez serwer ze skryptem jak każdy inny zewnętrzny url (np. ten, z którego dopiero pobrałem plik do dalszego przesłania). Więc pobieram plik z http://coś_tam i wysyłam na IP. Jeśli po swojej stronie (tzn. komputera) mam ustawione udostępnianie katalogu na zewnątrz, powinno to zadziałać. Czy nie?
Nie wiem tylko jak ubrać to w ścieżki żeby spróbować czy to działa. Poza tym wchodząc na http://mójIP trafiam na router (IMG:style_emoticons/default/sad.gif) i tu kolejne schody (IMG:style_emoticons/default/sad.gif) Ten post edytował wicy 6.05.2012, 15:16:28 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
To nie Twój komputer w sensie C:// tylko Twój katalog w sensie serwer jest widziany po wpisaniu IP. Poza tym nie ma co kombinować, zainstaluj pythona pod windows i poszukaj w google "python przenoszenie plików" jest tego dużo, odpalisz ten skrypt pythona z poziomu php i z głowy.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:23 |