Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Download plików
tr86
post
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 10.10.2009
Skąd: Dąbrowa Górnicza

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


Pliki, które wrzucam za pomocą uploadu są zapisywanie w folderze 'Dokumenty' na serwerze FTP.
Aby pobrać dany plik z poziomu strony www muszę wprowadzać nazwę użytkownika i hasło dla tego FTP'a.
Chciałbym tak zrobić, żeby każdy mógł pobierać pliki bez konieczności wprowadzania nazwy użytkownika i hasła.
Jako ścieżkę do pliku podaję coś w stylu:
  1. <a href="ftp://xxx.yoyo.pl/dokumenty/nazwapliku.doc">


Dodam, że pliki zapisują się z uprawnieniami 600.

Ponadto chciałbym, aby to kliknięciu lewym przyciskiem myszki na link z danym plikiem otwierało się od razu okienko 'Zapisz jako...',
bo jeśli kliknę lewym na link, to plik się otwiera w przeglądarce, jako że są to pliki tekstowe, doki i pdfy (oczywiście po podaniu nazwy użytkownika i hasła ;/).

Czy ktoś miał z czymś takim do czynienia?
Pozdrawiam (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Cytat(tr86 @ 13.10.2009, 16:25:28 ) *
Ponadto chciałbym, aby to kliknięciu lewym przyciskiem myszki na link z danym plikiem otwierało się od razu okienko 'Zapisz jako...',
bo jeśli kliknę lewym na link, to plik się otwiera w przeglądarce, jako że są to pliki tekstowe, doki i pdfy (oczywiście po podaniu nazwy użytkownika i hasła ;/).

Czy ktoś miał z czymś takim do czynienia?
Pozdrawiam (IMG:style_emoticons/default/smile.gif)


Otwierają się w przeglądarce, a czy przypadkiem nie w IE doc, a pdf w Firefox. Ja zrobiłem to na zasadzie:
  1. $sf = dbquery("SELECT * FROM `files` WHERE `fid` = '".$_GET['fid']."'");
  2. dbquery("UPDATE `files` SET `fcdown` = fcdown+1 WHERE `fid` = '".$_GET['fid']."'") or die(mysql_error());
  3. $r = dbobject($sf);
  4.  
  5. $url = UPLOADIR . $r->furl;
  6. if(file_exists(UPLOADIR.$r->furl)) {
  7. header('Content-Description: File Transfer');
  8. header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
  9. header('Pragma: public');
  10. header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  11. header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  12. // force download dialog
  13. header('Content-Type: application/force-download');
  14. header('Content-Type: application/octet-stream', false);
  15. header('Content-Type: application/download', false);
  16. header('Content-Type: '.$r->fmime.'', false);
  17. // use the Content-Disposition header to supply a recommended filename
  18. header('Content-Disposition: attachment; filename="'.basename($url).'";');
  19. header('Content-Transfer-Encoding: binary');
  20. header('Content-Length: '.filesize($url));
  21. flush();
  22. readfile($url);
  23. } else {
  24. redirect("errors.php?p=434");
  25. }


Pobieram dane o odnośniku z bazy i zapisuje przez ten skrypt.
Go to the top of the page
+Quote Post

Posty w temacie
- tr86   [MySQL][PHP]Download plików   13.10.2009, 16:25:28
- - jedrzejbl   Można to pomoże: http://php.net/manual/pl/book.ftp...   15.10.2009, 15:38:50
- - fifi209   readfile + header   15.10.2009, 17:16:59
- - potreb   Cytat(tr86 @ 13.10.2009, 16:25:28 ) P...   15.10.2009, 18:49:58


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: 4.10.2025 - 00:41