Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> problem ze sciaganie plików z serwera windows
tomek34
post 29.06.2009, 11:00:51
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


witam!!
problem wygląda następująco: Plik wrzucam na serwer poprzez klienta FTP. Plik wgrywa sie poprawnie i bez problemu ściaga za pomocą FTP. Natomiast na stronie listuje się bez problemu. Otwiera się też bez problemu i pozwala wybrać czy będzie otwarty czy ściągnięty. Niestety ani nie otwiera się ani nie ściaga poprawnie. Tworzy się plik o zero bajtach. Całość obsluguje następujący plik:
  1. <?php
  2.             $dir = "D:sercomfotki";
  3.                  function printDir($dir)
  4.                  {
  5.                   $fd = opendir($dir);
  6.                       if(!$fd) return false;
  7.                                while (($file = readdir($fd)) !== false){
  8.                       $pos = strpos($file, ' ');
  9.                       if($file != "." && $file != ".." && $pos === false){
  10.                       echo("<a href=\"download.php?name=");
  11.                       echo("$file\" class='style3'>$file</a><br />");
  12.                       }
  13.                   }
  14.                   closedir($fd);
  15.               }
  16.               printDir($dir)
  17. ?>

Proszę o pomoc. Nie mam żadnego pomyslu.
Pozdrawiam
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 11:02:16
Post #2





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




Kod
D:\ser\com\fotki

Ekhm, używaj odwrotnych ukośników.

Cytat
Niestety ani nie otwiera się ani nie ściaga poprawnie.

A jakiego serwera używasz?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 12:33:00
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


niestety windowsowego IIS

ktos ma jakis pomysl??
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 14:17:00
Post #4





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




Zmieniłeś ścieżki? Po linkach bezpośrednich do plików to samo?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 14:33:54
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


ale to windows serwer to jak ukosniki w druga strone??
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 15:01:06
Post #6





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




Normalnie. PHP sobie z nimi poradzi tym bardziej, że w tej chwili zapis wskazuje na encje, i tak: albo escape'ujesz, albo odwróć slesze. PHP sobie poradzi, IIS też.

Zresztą, w eksploratorze możesz stosować dowolne ukośniki, o URL-ach nie wspomnę.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 17:08:22
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


po odwroceniu nadal jest to samo.
nie uruchamia pliku i sciaga plik zerowej wartosci o poprawnej nazwie
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 18:08:41
Post #8





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




Zadałem pytanie:
Cytat
Po linkach bezpośrednich do plików to samo?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 18:44:33
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


po linku bezpośrednim się uruchamia
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 18:45:33
Post #10





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




Ok, pokaż co w tej chwili wypluwa skrypt, chodzi mi o linki.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 18:57:06
Post #11





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


tzn plik się otwiera ale nie daje mozliwosci zapisania

mozesz jaksniej bo nie rozumiem

skrypt wyswietla zawartosc folderu w formie nazwa i rozszerzenie
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 19:12:17
Post #12





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




Załącz kod wynikowy, czyli wygenerowany HTML.

Cytat
tzn plik się otwiera ale nie daje mozliwosci zapisania

To w końcu o co chodzi?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 19:27:53
Post #13





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


całość mechanizmu stanowią dwa pliki: test.php i download.php
pierwszy wyświetla zawartość drugi uruchamia ściaganie pliku.
test.php jest następujący:
  1. <?php
  2.             $dir = "D:sercomfotki";
  3.                  function printDir($dir)
  4.                  {
  5.                   $fd = opendir($dir);
  6.                       if(!$fd) return false;
  7.                                while (($file = readdir($fd)) !== false){
  8.                       $pos = strpos($file, ' ');
  9.                       if($file != "." && $file != ".." && $pos === false){
  10.                       echo("<a href=\"download.php?name=");
  11.                       echo("$file\" class='style3'>$file</a><br />");
  12.                       }
  13.                   }
  14.                   closedir($fd);
  15.               }
  16.               printDir($dir)
  17. ?>

dowload.php taki:
  1. <?php
  2. $filesPath = "./";
  3.  
  4. function securityCheck($name)
  5. {
  6.  $wyr = "^[a-z0-9_-]+(.[a-z0-9_-]+)*$";
  7.  return eregi($wyr, $name);
  8. }
  9. function send($fileName, $filePath)
  10. {
  11.  
  12.  $fd = fopen($filePath.$fileName,"r");
  13.  $size = filesize($filePath.$fileName);
  14.  $contents = fread($fd, filesize($filePath.$fileName));
  15.  
  16.  fclose($fd);
  17.  
  18.  header("Content-Type: application/octet-stream");
  19.  header("Content-Length: $size;");
  20.  header("Content-Disposition: attachment; filename=$fileName");
  21.  
  22.  echo $contents;
  23. }
  24. if(isSet($_GET['name'])){
  25.  if(!securityCheck($_GET['name'])){
  26.    echo('Nie ma takiego pliku na serwerze!');
  27.  }
  28.  else{
  29.    send($_GET['name'], $filesPath);
  30.  }
  31. }
  32. else{
  33.  echo('Nie ma takiego pliku na serwerze!');
  34. }
  35. ?>

Problem opisałem dokładnie na początku. Pliki są wyświetlane jako lista.
Po kliknięciu pojawia się akcja okienko wybory czy otworzyć plik czy zapisać.
Jak klikam otworzyć to niby probuje się otworzyć ale plik się nie pobiera i wyświetla błąd natomast jak klikam zapisz plik sie zapisuje ale jako zero bajtowy, czyli nie pobiera się właściwie.
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 19:31:37
Post #14





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




O, fajnie że powiedziałeś o skrypcie wysyłającym...

  1. <?php
  2. $fd = fopen($filePath.$fileName,"r");
  3. $size = filesize($filePath.$fileName);
  4. $contents = fread($fd, filesize($filePath.$fileName));
  5. ?>

Zamiast wysyłać od razu całość, porcjuj odczyt.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 19:40:01
Post #15





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


ale w ten sposób to nie wysyła
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 20:04:31
Post #16





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




Pokaż, co zrobiłeś.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 20:16:51
Post #17





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


uzyłem kod który napisałeś:
  1. <?php
  2. $fd = fopen($filePath.$fileName,"r");
  3. $size = filesize($filePath.$fileName);
  4. $contents = fread($fd, filesize($filePath.$fileName));
  5. ?>

ale te pliki przedtem działy ok w takim stanie jak były
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 20:17:31
Post #18





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




A czy Ty czytasz, co ja piszę?
Cytat
Zamiast wysyłać od razu całość, porcjuj odczyt.

A ja tylko zacytowałem Twój kod.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomek34
post 29.06.2009, 21:34:01
Post #19





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.04.2009

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


wiec co moge poprawic bo te pliki nadal nie działają
Go to the top of the page
+Quote Post
erix
post 29.06.2009, 21:55:34
Post #20





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




Popraw to, co napisałem - odczytujesz cały plik za jednym zamachem. Napisałem o porcjowaniu, to się do tego zastosuj, nie będę więcej męczył palców, żeby N-ty raz pisać o tym samym.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.07.2025 - 06:03