Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] pobieranie pliku z serwera
qwe
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


Witam

Jestem początkujący ale próbuje zrobić stronkę gdzie będzie można uplodować plik na serwer albo ściągnąć.

Za pomocą formularza zrobiłem upload pliku do katalogu pliki

index.html

Kod
<FORM ENCTYPE="multipart/form-data" action="upload.php" method=post>
<FORM ENCTYPE="multipart/form-data" method=post>
<INPUT TYPE="FILE" NAME="plik" SIZE="50">
<br>
<INPUT TYPE="SUBMIT" VALUE="WYSLIJ">
</form>



upload.php

Kod
<?php
$uploaddir = 'pliki/';
if(move_uploaded_file($_FILES['plik']['tmp_name'], $uploaddir.$_FILES['plik']['name']))
{
echo 'Plik zostal zaladowany poprawnie <br><br>';

}
else
echo 'Blad podczas wysylania pliku.';


I mam problem jak zrobić aby za pomocą formularza wpisać nazwę pliku np plik.txt i z katalogu pliki został on ściągnięty na dysk np na dysk c

Szukałem w necie jakichś bardzo prostych skryptów (tak jak ten z wysyłaniem pliku) ale nic nie znalazłem, wszystkie skrypty są rozbudowane a mi taki nie potrzebny. Chciałbym pobierać pliki które mają max 500kb


proszę o pomoc

z góry dziękuję

Ten post edytował qwe 3.02.2009, 13:58:54
Go to the top of the page
+Quote Post
matixrr
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 14.04.2007

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


  1. <?php
  2.  
  3. echo'<form action="test.php" method="post">
  4.    wpisz nazwe pliku <br>
  5.    <input type="text" name="nazwa" id="nazwa" value="">
  6.    
  7.    <br><input type="submit" name="download" value="znajdz">
  8.    <input type="reset" value="wyczyść">
  9.    </form>';
  10.  
  11. if(isset($_POST['download']))
  12. {
  13.  $nazwa = $_POST['nazwa'];  
  14.    
  15.    if (!file_exists($nazwa))
  16.    {
  17.    echo("Na serwerze nie ma pliku o nazwie $nazwa");
  18.    }
  19.    else
  20.    {
  21.    echo("Plik o nazwie $nazwa został odnaleziony.<br><br>W ciągu kilku sekund powinno rozpocząć się pobieranie pliku.
  22. Jeśli pobieranie nie rozpoczęło się automatycznie, proszę kliknąć na ten <a href=$nazwa>link</a>
  23. <META HTTP-EQUIV='Refresh' CONTENT='2; URL=$nazwa'>");
  24.    }
  25.  
  26. }
  27. ?>


Plik musi być umieszczony w katalogu z którego mają być pobierane pliki.


--------------------
Pomogłem? Zmotywuj mnie do dalszej pracy i kliknij magiczny przycisk:

Go to the top of the page
+Quote Post
qwe
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


umiescilem kod w katalogu download - wyszukuje plik wyswietla

Cytat
Plik o nazwie $nazwa został odnaleziony.<br><br>W ciągu kilku sekund powinno rozpocząć się pobieranie pliku.
Jeśli pobieranie nie rozpoczęło się automatycznie, proszę kliknąć na ten <a href=$nazwa>link</a>


ale nie pobiera pliku na serwer tylko pokazuje jakohttp://www.strona.pl/download/test.txt
Go to the top of the page
+Quote Post
matixrr
post
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 14.04.2007

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


Niestety ja się poddaje. Teoretycznie miałem kod który powinien działać, ale mi za nic nie chciał zadziałać.

Tutaj daje linka jakby do rozwiazania:

http://www.google.pl/search?q=%22header(&#...-8&oe=utf-8

Oczywiscie probowalem pobierac jakby na sztywno czyli okreslajac konkretny plik jak i ze zmiennymi, ale efekt w sumie zawsze ten sam. Sciaga mi sie plik ze zrodlem strony, nic, bledna nazwa lub rozszerzenie.

Sam jestem ciekaw jak to ktos rozwiaze, moze jest osoba ktora sie juz z tym meczyla.


--------------------
Pomogłem? Zmotywuj mnie do dalszej pracy i kliknij magiczny przycisk:

Go to the top of the page
+Quote Post
qwe
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


matixrr ale i tak dziękuje smile.gif będę próbował jakoś to zrobić i popytam jeszcze ludzi jak coś będę miał to dam znać
Go to the top of the page
+Quote Post
matixrr
post
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 14.04.2007

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


Ukłon należy się dla @NuLL za skrypt do sciagania.

  1. <?php
  2.  
  3. echo'<form action=test.php method=post>
  4.   <input type=text name=cos id=cos>
  5.   <br><input type=submit name=pobierz value=pobierz>
  6.   </form>';
  7.  
  8. if(isset($_POST['pobierz']))
  9. {
  10. $file = $_POST['cos'];  
  11.  
  12.    //First, see if the file exists
  13.    if (!is_file($file)) { die("<b>404 File not found!</b>"); }
  14.  
  15.    //Gather relevent info about file
  16.    $len = filesize($file);
  17.    $filename = basename($file);
  18.    $file_extension = strtolower(substr(strrchr($filename,"."),1));
  19.  
  20.    //This will set the Content-Type to the appropriate setting for the file
  21.    switch( $file_extension ) {
  22.          case "pdf": $ctype="application/pdf"; break;
  23.      case "exe": $ctype="application/octet-stream"; break;
  24.      case "zip": $ctype="application/zip"; break;
  25.      case "doc": $ctype="application/msword"; break;
  26.      case "xls": $ctype="application/vnd.ms-excel"; break;
  27.      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  28.      case "gif": $ctype="image/gif"; break;
  29.      case "png": $ctype="image/png"; break;
  30.      case "jpeg":
  31.      case "jpg": $ctype="image/jpg"; break;
  32.      case "mp3": $ctype="audio/mpeg"; break;
  33.      case "wav": $ctype="audio/x-wav"; break;
  34.      case "mpeg":
  35.      case "mpg":
  36.      case "mpe": $ctype="video/mpeg"; break;
  37.      case "mov": $ctype="video/quicktime"; break;
  38.      case "avi": $ctype="video/x-msvideo"; break;
  39.  
  40.      //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
  41.      case "php":
  42.      case "htm":
  43.      case "html":
  44.      case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break;
  45.  
  46.      default: $ctype="application/force-download";
  47.    }
  48.  
  49.    //Begin writing headers
  50.    header("Pragma: public");
  51.    header("Expires: 0");
  52.    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  53.    header("Cache-Control: public");
  54.    header("Content-Description: File Transfer");
  55.    
  56.    //Use the switch-generated Content-Type
  57.    header("Content-Type: $ctype");
  58.  
  59.    //Force the download
  60.    @$header="Content-Disposition: attachment; filename=".$filename.";";
  61.    header($header );
  62.    header("Content-Transfer-Encoding: binary");
  63.    header("Content-Length: ".$len);
  64.    @readfile($file);
  65.    exit;
  66. }
  67.  
  68. ?>


Nie wiem czy nie wymagane jest aby było output_buffering=on

Ten post edytował matixrr 3.02.2009, 21:55:10


--------------------
Pomogłem? Zmotywuj mnie do dalszej pracy i kliknij magiczny przycisk:

Go to the top of the page
+Quote Post
qwe
post
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


matixrr wielkie dzięki smile.gif działa

tylko muszę przerobić aby pobierał pliki txt bo reszta rozszerzeń nie jest potrzebna

ale jeszcze raz

bardzo dziękuje za pomoc smile.gif
Go to the top of the page
+Quote Post
matixrr
post
Post #8





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 14.04.2007

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


No szkoda że teraz powiedziałeś że to ma być jeden format pliku, ale trudno smile.gif

Jbc to:
  1. <?php
  2. case "txt": $ctype="text/plain"; break;
  3. ?>


--------------------
Pomogłem? Zmotywuj mnie do dalszej pracy i kliknij magiczny przycisk:

Go to the top of the page
+Quote Post
qwe
post
Post #9





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

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


w poście napisałem

Cytat
I mam problem jak zrobić aby za pomocą formularza wpisać nazwę pliku np plik.txt i z katalogu pliki został on ściągnięty na dysk np na dysk c

Szukałem w necie jakichś bardzo prostych skryptów (tak jak ten z wysyłaniem pliku) ale nic nie znalazłem, wszystkie skrypty są rozbudowane a mi taki nie potrzebny. Chciałbym pobierać pliki które mają max 500kb



ale dziękuje i przepraszam za dodatkowy kłopot - może niezbyt konkretnie sprecyzowałem
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 14:34