C zamierzalem uzyc do jakby wlasnego server'a ftp ktory bedzie laczyc sie na wezwanie php'a z prawdziwym ftp'em. Podawal link do pliku ale defakto sciagal go przez mojego ftp'a ktoy dzialalby na jakims innym porcie i maskowal adres ftp w ten sposob.
MD5
zapisuje login do tablicy charow mieszam wszystkie znaki przypadkowo i generuje z tego md5 dostaje unikatowa nazwe. Tworze katalog w katalogu tmp o tej wlasnei nazwie. Wykluczam wlasciwie prawodpodobienstwo przypadkowego odnalezienia katalgou przez uzytkownika choc watpie zeby ktos chcial probowac jak zobaczy nazwe
ftp://download/#@krzaczki@#/file.exe katalogowi download nadajemy chmod 771 a #@krzaczki@# chmod 775 co daje nam brak mozliwosci przegladania katalogow znajdujach sie w ktalagou download
Dodawanie kont do ftp'a jest chyba troszke malo wydajne i niebezpieczen bo w pewnym momencie bedziemy mieli np. 10 tys. kont na ftpie z czego uzywanych bedzie tylko 1 tys.
Nie chce mi sie wierzyc ze to jest takie skaplikowane do wykonania nie da sie tego jakims porostym sposobem rozwiazac.
Powracajajc jeszcze do funckji readfile etc. mam taki skrypcik:
<?php
header(\"Pragma: public\"); header(\"Cache-Control: must-revalidate, post-check=0, pre-check=0\"); header(\"Cache-Control: public\"); header(\"Content-Description: File Transfer\"); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.$filename); header('Content-Type: application/force-download'); header(\"Content-Transfer-Encoding: binary\"); header(\"Content-Length: \".filesize($filename));
?>
Tylko ze sciaga wtedy np 255 bajtow np. z 8 MB. Czyli laczy sie z serwerem po przejrzeniu logow wnioskuje ze wynika to z tego iz jesli wywolam readfile lacze sie z serwerem przy uzyciu active mode a nie pasive moze o to chodzi. Ponizej zapis logow z servwera dla udanego download'u przy uzyciu header("Location") i nie udanego przy uzyciu readfile()
Kod
2005-02-16 09:27:06#majkel#00:00:13#8887179#0#8887179#1#0#634798,500#8#0
(000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > connected to ip : 192.168.0.228
(000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > sending welcome message.
(000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > 220 BulletProof FTP Server ready ...
(000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > USER anonymous
(000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > 331 Password required for anonymous.
(000007) 2005-02-16 09:27:06 - (not logged in) (192.168.0.218) > PASS ********
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > logged in.
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 230 User majkel logged in.
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > TYPE I
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 200 Type set to I.
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > PASV
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 227 Entering Passive Mode (192,168,0,228,102,45).
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > SIZE /pcmark2002.exe
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 213 8887179
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > RETR /pcmark2002.exe
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > asked to download 'C:\apache\htdocs\pcmark2002.exe' --> Access allowed.
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > 150 Data connection accepted from 192.168.0.218:1186; transfer starting for pcmark2002.exe (8887179 bytes).
(000007) 2005-02-16 09:27:06 - majkel (192.168.0.218) > started downloading 'C:\apache\htdocs\pcmark2002.exe'.
(000007) 2005-02-16 09:27:13 - majkel (192.168.0.218) > finished downloading 'C:\apache\htdocs\pcmark2002.exe' - (00:00:08 - 8678,886 KB - 1084,861 KBytes/s)
(000007) 2005-02-16 09:27:13 - majkel (192.168.0.218) > 226 Transfer ok
(000007) 2005-02-16 09:27:19 - majkel (192.168.0.218) > disconnected. (00:00:13)
2005-02-17 14:03:08#majkel#00:00:00#0#0#0#0#0#0,000#0#0
(000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > connected to ip : 192.168.0.228
(000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > sending welcome message.
(000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > 220 BulletProof FTP Server ready ...
(000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > USER anonymous
(000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > 331 Password required for anonymous.
(000006) 2005-02-17 14:03:08 - (not logged in) (192.168.0.228) > PASS ********
(000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > logged in.
(000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > 230 User majkel logged in.
(000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > TYPE I
(000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > 200 Type set to I.
(000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > SIZE /ftp/pcmark2002.exe
(000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > 550 No such file or directory.
(000006) 2005-02-17 14:03:08 - majkel (192.168.0.228) > disconnected. (00:00:00)
Nie wiem wsumie co jest zapisywane na dysku bo z tego co powyzej wynika ze nic nie zostalo sciagniety w drugim przypadku z server'a
Czekam na jakies sugestie i propozycje:)
Gdaq