Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Download plików
Forum PHP.pl > Forum > Przedszkole
tr86
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 smile.gif
jedrzejbl
Można to pomoże: http://php.net/manual/pl/book.ftp.php
Fifi209
readfile + header
potreb
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 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.
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.