Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ftp - sciaganie pliku z serwera
Forum PHP.pl > Forum > PHP
grohu
chcialbym miec skrypt do ktorego odwoluje sie
plik o tresc:

<a href=sciagnij_plik.php?plik=$nazwa_pliku> $nazwa_pliku </a>


zadaniem pliku sciagnij.php jest polaczenie z serwerem,i sciagniecie
pliku tak,zeby w przegladarce otworzylo sie okienko do zapisania
pliku (w header trzeba chyba uzyc attachment);

a w pliku sciagnij_plik.php :

$serwer="localhost";
$uzytkownik="szparag";
$haslo="haslo";

$conn_id = ftp_connect($serwer);
$login_result = ftp_login($conn_id, $uzytkownik, $haslo);

teraz trzeba jakos pobrac $plik z serwera ftp i wyslac go
do przegladarki.
nie wiem jak to zrobic zbytnio,wiem ze sa funkcje ftp
do sciagania plikow ,ale z deka ich nie kumam.

ten plik z ftpa trzeba chyba zapisac do zmiennej a pozniej wrzucic ja jako zalacznik w naglowek,ale nie wiem...

moze mi ktos dokonczyc ten przyklad sciagania plikow z serwera questionmark.gif?

prosze o pomoc!
HaRy
zapisz ten plik gdzies na w jakims tmp' katalogu

i location'em zapodaj przegladarce
[php:1:a8f3a602e5]<?php
header("Location: ".$plik);

?>[/php:1:a8f3a602e5]
Seth
grochu: uzywaj BBCode'u. Wiecej tutaj: http://forum.php.pl/viewtopic.php?t=2810
grohu
ok.
od tej pory bede uzywal bbcode,ale to nie zmienia faktu ze problem pozostaje.
harry mi nie pomogl swoja rada z
[php:1:20c5c89128]
<?
header("Location: ...");
?>
[/php:1:20c5c89128]

i umieszczaniem plikow w tempie,bo sztuka polega na pobraniu pliku z ftp'a a nie z tmp'a.
mozna zrobic to tak,ale to nie ma sensu ze wzgledu na bezpieczenstwo:
[php:1:20c5c89128]<?
header("Location: user:password@server/$plik");
?>[/php:1:20c5c89128]

ale jak bedzie plik ktory przegladarka moze otworzyc sama to otworzy ten plik w swoim oknie a na pasku adresy pojawi sie adres z nazwa uzytkownika ,haslem i adresem serwera.
to bez sensu.
dlatego plik trzeba sciagnac za pomoca funckji php do obslugi FTP.
i w tym caly problem,i do tego potrzebuje pomocy.
DeyV
Szukaj...
Było np. tu: http://forum.php.pl/viewtopic.php?t=5701&h...hlight=download
a tu gotowy przykład:

Cytat
[php:1:e0088953ef]
<?php

$file = './files/'.$_GET['file'];

header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".basename($file));
header("Connection: Close");

readfile($file);
?>
[/php:1:e0088953ef]
Do tego doloz sprawdzanie wczesniej czy z dozwolonego katalogu plik leci i bedziesz mial.
kurtz
Hej,

Proponowlabym nastepujaca kolejnosc:
1) php-ftp
laczysz sie ze zdalnym serwerem
pobierasz plik
( opis jak: http://pl2.php.net/manual/en/function.ftp-get.php )
zapiszujesz go w /tmp pod jakas losowa nazwa
( jak: http://pl2.php.net/manual/en/function.tempnam.php )

2) php
wysylasz naglowki - "zapisz plik"
(php.faq.pl - sugerowanie przegladarce nazwy..)


tyle ;)

Powiesz z ktorym emasz ewentlanie problem - bedizemy kombinowac.

Pozdrawiam
DeyV
no i super - posty się uzupełniły.
Ale zastanawia mnie, dlaczego uważasz, że warto by towrzyć plik tymczasowy, a dopiero potem przesyłać go do usera? Z uwagi na prędkość połączenia ftp? Czy jest jakiś inny powód?
kurtz
Hej
Cytat
no i super - posty się uzupełniły.
Ale zastanawia mnie, dlaczego uważasz, że warto by towrzyć plik tymczasowy, a dopiero potem przesyłać go do usera? Z uwagi na prędkość połączenia ftp? Czy jest jakiś inny powód?
Poniewaz calkiem mozliwe ze wystapia dwa pliki o tej samej nazwie. ot przyzwyczajenie ;)


Pozdrawiam
grohu
i sprawa jest juz jasna,najpierw sie pobiera plik z ftp do katalogu /tmp
a z niego przesyla sie naglowek do przegladarki.

dzieki
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.