Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie Pliku Do Przeglądarki
Forum PHP.pl > Forum > PHP
Riklaunim
Zrobiłem przeglądacza katalogów. Problem jest z plikami, które mają się ściągać. GET[plik] przetrzymuje ścieżkę i nazwę pliku od katalogu skryptu (a plik jest w podkatalogu), $link - ścieżka do skryptu
np. [plik] /pliki/foo.zip a $link http://localhost/download
  1. <?
  2. $file = &#092;"$link/$_GET[plik]\";
  3. header('Content-Disposition: filename=\"'.$file.'\"');
  4. header(&#092;"Content-Type: application/octetstream\");
  5. header(&#092;"Content-Length: \".filesize($file));
  6. exec(&#092;"rm $file\"); 
  7. ?>


Plik jest "wysyłany", tylko że odbiera się pusty plik... czy gdzieś powinna być sama nazwa pliku bez ścieżki?
matid
  1. <?php
  2. $file = &#092;"$link/$_GET[plik]\";
  3. header('Content-Disposition: filename=\"'.$file.'\"');
  4. header(&#092;"Content-Type: application/octetstream\");
  5. header(&#092;"Content-Length: \".filesize($file));
  6. readfile( $file ); // przecież w jakiś sposób musisz wysłać ten plik do przeglądarki
  7. exec(&#092;"rm $file\");
  8. ?>

Powinno teraz działać.
Riklaunim
Już działa lepiej - tzn. plik jest wysyłany, rozmiar jest odczytywany lecz... treścią pliku jest treść (kod HTML) strony z której się ściąga plik...
Kod
<?
$pliczek = str_replace("$patch/", '', $_GET[plik]); // nazwa pliku.xyz
$file = "$_GET[plik]"; // ścieżka do pliku od skryptu + nazwa
header('Content-Disposition: filename="'.$pliczek.'"');
header("Content-Type: application/octetstream");
header("Content-Length: ".filesize($file));
readfile($file);
exec("rm $file"); ?>


  1. <head><title>Repozytorium Plików</title><link rel=\"stylesheet\" type=\"text/css\" href=\"download/template.css\"><meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-2\"></head><body leftmargin=\"4\" topmargin=\"4\">
  2. <?php
  3.  
  4. $f = 0;
  5. $fi = 0;
  6. ////////////////////////////////
  7. //Listowanie podkatalogów//
  8. IF (!isset($_GET[patch]))
  9. {
  10. $patch = 'pliki';
  11. }
  12. else
  13. {
  14. $patch = $_GET[patch];
  15. }
  16. /////////////////////////////////
  17. $katalog = @dir($patch) or
  18. die (&#092;"Nie można listować\");
  19. while ($plik_kat = $katalog->read())
  20. IF(!ereg(&#092;".[a-zA-Z0-9]*\", $plik_kat) and $plik_kat!='.' and $plik_kat!='..')
  21. {
  22. $f = 1;
  23. $folders[] = &#092;"<img src=\"download/folder.png\"> <a href=\"index.php?patch=$patch/$plik_kat\"><B>$plik_kat</b></a><BR>\";
  24. }
  25. elseIF ($plik_kat!='.' and $plik_kat!='..')
  26. {
  27. $fi = 1;
  28. $files[] = $plik_kat;
  29. }
  30. $katalog->close();
  31. ///// Koniec listowania, sortujemy wyniki //////
  32. IF ($fi == 1)
  33. {
  34. asort($files);
  35. }
  36. IF ($f == 1)
  37. {
  38. asort($folders);
  39. }
  40. //// Wyświetlanie struktury ////
  41. IF ($f == 1)
  42. {
  43. foreach ($folders as $folder)
  44. {
  45. echo $folder;
  46. }
  47. }
  48. // Pliki//
  49. IF ($fi == 1)
  50. {
  51. foreach ($files as $file)
  52. {
  53. IF (ereg('.txt', $file)) // później case lub automat dla pojedyńczych warunków
  54. {
  55. echo &#092;"<img src=\"download/txt.png\"> <A href=\"index.php?plik=$patch/$file\";
  56. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  57. echo &#092;"\">$file</a>\";
  58. }
  59. ElseIF (ereg('desc', $file))
  60. {
  61. }
  62. ElseIF (ereg('.php', $file) or ereg('.php3', $file) or ereg('.php4', $file) or ereg('.phtml', $file))
  63. {
  64. echo &#092;"<img src=\"download/php.png\"> <A href=\"index.php?plik=$patch/$file\";
  65. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  66. echo &#092;"\">$file</a>\";
  67. }
  68. ElseIF (ereg('.pdf', $file))
  69. {
  70. echo &#092;"<img src=\"download/pdf.png\"> <A href=\"index.php?plik=$patch/$file\";
  71. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  72. echo &#092;"\">$file</a>\";
  73. }
  74. ElseIF (ereg('.rpm', $file))
  75. {
  76. echo &#092;"<img src=\"download/rpm.png\"> <A href=\"index.php?plik=$patch/$file\";
  77. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  78. echo &#092;"\">$file</a>\";
  79. }
  80. ElseIF (ereg('.deb', $file))
  81. {
  82. echo &#092;"<img src=\"download/deb.png\"> <A href=\"index.php?plik=$patch/$file\";
  83. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  84. echo &#092;"\">$file</a>\";
  85. }
  86. ElseIF (ereg('.html', $file) or ereg('.htm', $file) or ereg('.css', $file) or ereg('.js', $file))
  87. {
  88. echo &#092;"<img src=\"download/html.png\"> <A href=\"index.php?plik=$patch/$file\";
  89. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  90. echo &#092;"\">$file</a>\";
  91. }
  92. ElseIF (ereg('.jpg', $file) or ereg('.gif', $file) or ereg('.png', $file) or ereg('.bmp', $file) or ereg('.psd', $file) or ereg('.ico', $file))
  93. {
  94. echo &#092;"<img src=\"download/image.png\"> <A href=\"index.php?plik=$patch/$file\";
  95. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  96. echo &#092;"\">$file</a>\";
  97. }
  98. ElseIF (ereg('.iso', $file))
  99. {
  100. echo &#092;"<img src=\"download/iso.png\"> <A href=\"index.php?plik=$patch/$file\";
  101. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  102. echo &#092;"\">$file</a>\";
  103. }
  104. ElseIF (ereg('.zip', $file) or ereg('.rar', $file) or ereg('.tgz', $file) or ereg('.gz', $file) or ereg('.tar', $file))
  105. {
  106. echo &#092;"<img src=\"download/tgz.png\"> <A href=\"index.php?plik=$patch/$file\";
  107. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  108. echo &#092;"\">$file</a>\";
  109. }
  110. ElseIF (ereg('.ttf', $file) or ereg('.fon', $file))
  111. {
  112. echo &#092;"<img src=\"download/font.png\"> <A href=\"index.php?plik=$patch/$file\";
  113. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  114. echo &#092;"\">$file</a>\";
  115. }
  116. ElseIF (ereg('.xls', $file))
  117. {
  118. echo &#092;"<img src=\"download/xls.png\"> <A href=\"index.php?plik=$patch/$file\";
  119. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  120. echo &#092;"\">$file</a>\";
  121. }
  122. ElseIF (ereg('.doc', $file) or ereg('.rtf', $file) or ereg('.wri', $file))
  123. {
  124. echo &#092;"<img src=\"download/doc.png\"> <A href=\"index.php?plik=$patch/$file\";
  125. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  126. echo &#092;"\">$file</a>\";
  127. }
  128. ElseIF (ereg('.midi', $file) or ereg('.mp3', $file) or ereg('.wav', $file))
  129. {
  130. echo &#092;"<img src=\"download/midi.png\"> <A href=\"index.php?plik=$patch/$file\";
  131. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  132. echo &#092;"\">$file</a>\";
  133. }
  134. ElseIF (ereg('.mpeg', $file) or ereg('.wmv', $file))
  135. {
  136. echo &#092;"<img src=\"download/video.png\"> <A href=\"index.php?plik=$patch/$file\";
  137. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  138. echo &#092;"\">$file</a>\";
  139. }
  140. ElseIF (ereg('.exe', $file))
  141. {
  142. echo &#092;"<img src=\"download/exe.png\"> <A href=\"index.php?plik=$patch/$file\";
  143. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  144. echo &#092;"\">$file</a>\";
  145. }
  146. ElseIF (ereg('.jar', $file) or ereg('.java', $file))
  147. {
  148. echo &#092;"<img src=\"download/java.png\"> <A href=\"index.php?plik=$patch/$file\";
  149. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  150. echo &#092;"\">$file</a>\";
  151. }
  152. ElseIF (!ereg('desc', $file))
  153. {
  154. echo &#092;"<img src=\"download/unk.png\"> <A href=\"index.php?plik=$patch/$file\";
  155. IF (isset($_GET[patch])) { echo &#092;"&patch=$_GET[patch]\"; }
  156. echo &#092;"\">$file</a>\";
  157. }
  158. @include &#092;"$file.desc\";
  159. echo '<BR>';
  160. }
  161. }
  162. //////// Wyświetlanie zawartości plików ///////
  163. echo '<hr>';
  164. //$link = 'http://localhost/0'; // ścieżka www do skryptu
  165. IF (isset($_GET[plik]))
  166. {
  167. IF (ereg(&#092;".php\", $_GET[plik]) or ereg(\".php3\", $_GET[plik]) or ereg(\".php4\", $_GET[plik]) or ereg(\".phtml\", $_GET[plik]) or ereg(\".txt\", $_GET[plik]) or ereg(\".css\", $_GET[plik]) or ereg(\".js\", $_GET[plik]))
  168. {
  169. echo highlight_file($_GET[plik]);
  170. }
  171. ElseIF (ereg(&#092;".jpg\", $_GET[plik]) or ereg(\".gif\", $_GET[plik]) or ereg(\".png\", $_GET[plik]) or ereg(\".bmp\", $_GET[plik]))
  172. {
  173. echo &#092;"<BR><BR><BR><center><img src=\"$_GET[plik]\"></center><BR><BR><BR><BR><BR>\";
  174. }
  175. ElseIF (ereg(&#092;".htm\", $_GET[plik]))
  176. {
  177. include &#092;"$link/$_GET[plik]\";
  178. }
  179. Else
  180. {
  181. $pliczek = str_replace(&#092;"$patch/\", '', $_GET[plik]); // nazwa pliku.xyz
  182. $filelink = &#092;"$_GET[plik]\"; // ścieżka od skryptu
  183. header('Content-Disposition: filename=\"'.$pliczek.'\"');
  184. header(&#092;"Content-Type: application/octetstream\");
  185. header(&#092;"Content-Length: \".filesize($filelink));
  186. readfile($filelink);
  187. exec(&#092;"rm $filelink\");
  188. }
  189. }
  190. ?>
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.