Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie pliku przez header
Forum PHP.pl > Forum > PHP
siurek22
Mam problem bo uploaduje plik skryptem php na serwer nadaje mu chmod 0755 i przy probie pobrania prze kod
Kod
                header('Content-Type: application/x-unknown');
                header('Content-Disposition: attachment; filename='.$plik.'');
                readfile ('teacher/'.$plik.'');


plik się pobiera pod dobrą nazwą ale gdy sprawdzam zawartość pliku to mam kod html strony z której próbóję pobrać plik

jak widac uploadowane pliki sa w folderze wyzej (teacher)

proszę o pomoc bo już niewiem co jest źle sad.gif
Virti
Szczerze mówiąc strzelam, bo nigdy nic takiego nie robiłem, ale z doświedczeń (pseudo) z pracą w GD i obrazami spróbowałbym usunąć drugi header i zamiast readfile dać
  1. <?php
  2. echo file_get_contents('teacher/'.$plik);
  3. ?>


jeżeli dobrze zrozumiałem ten temat winksmiley.jpg

Pozdrawiam.
siurek22
niestety nic niedalo gdy przejrzalem pobierany kod to zauwazylem ze plik ktory chce pobrac jest otwierany na stronie a poczym kopiowane zrodlo strony razem z zawartoscia pliku

nie wiem dlaczego tak sie dzieje :/
qrees
Cytat(siurek22 @ 24.02.2008, 20:56:59 ) *
jak widac uploadowane pliki sa w folderze wyzej (teacher)

proszę o pomoc bo już niewiem co jest źle sad.gif

Kod html w pliku sam się nie pojawia. Widocznie w czasie pobierania także wyświetlasz stronę. Podaj jakiś fragment skryptu, bo inaczej ciężko zgadnąć gdzie masz błąd...
siurek22
Kod
require_once "maincore.php";

require_once "subheader.php";

require_once "side_left.php";

opentable('Nauczyciele');

$id=intval($_GET['id']);
$cid=intval($_GET['cid']);
echo'<br><br>';
        if(empty($id) and empty($cid))
            {
                $wyniki = @mysql_query("SELECT * FROM ** ORDER BY name2 ASC");
                echo '<center>
                <table width="200px" border="1px">
                <tr><td align="center">Wybierz nauczyciela:</td></tr>';                                
                while($r = mysql_fetch_assoc($wyniki))
                    {
                        echo '<tr><td><a href="teach.php?id='.$r['id'].'">'.$r['name'].'</a></td></tr>';
                        $c=$r['name'];
                    }
                    echo '</table></center>';
                if(empty($c)) {echo'<center><b>Brak tre¶ci do wy¶wietlenia.</b></center>';}
                

            }
            elseif(!empty($id))
            {
            $i=0;
            $los=mysql_query("SELECT * FROM ** WHERE id='$id'");
            $id2=@mysql_result($los,$i,"id");
                if($id==$id2 and !empty($id2))
                    {
                        
                        
                        $wyniki = @mysql_query("SELECT * FROM **_upload WHERE kto='$id2' ORDER BY id ASC");
                        echo '<center>';                                
                        while($r = mysql_fetch_assoc($wyniki))
                        {
                            echo '<table width="400px" border="1px">
                            <tr><td>Tytuł: '.$r['tytul'].'</td><td width="150px">Data dodania: '.$r['date'].'</td></tr>
                            <tr><td colspan="2">Opis: '.$r['tresc'].'</td></tr>
                            <tr><td colspan="2" align="center"> <b><a href="teach.php?cid='.$r['id'].'">Pobierz</a></b></td></tr></table> <br><br>';
                            $c=$r['tytul'];
                        }
                        echo '</center>';
                        if(empty($c)) {echo'<center><b>Brak tre¶ci do wy¶wietlenia.</b></center>';}
                    }
                    else {echo'<center><b>Brak tre¶ci do wy¶wietlenia.</b></center>';}
            }
            elseif(!empty($cid))
            {
            $i=0;
            $los=mysql_query("SELECT * FROM **_upload WHERE id='$cid'");
            $cid2=@mysql_result($los,$i,"id");
            $plik=@mysql_result($los,$i,"plik");
                if($cid==$cid2 and !empty($cid2))
                {
                header('Content-Type: application/x-unknown');
                header('Content-Disposition: attachment; filename="'.$plik.'"');
                echo file_get_contents('teacher/'.$plik);
                exit;
                }
            }

echo'<br><br>';
closetable();

tablebreak();
require_once "side_right.php";

require_once "footer.php";


(tabele zaslonilem) pisze dodatek do php-fusion i wyswietla cala strone przy pobieraniu
qrees
po pierwsze, to na samym początku masz:
  1. <?php
  2. echo'<br><br>';
  3. ?>

Które jest zawsze wyświetlane, a więc zawsze trafi do pobieranego pliku...
Radzę zrobić oddzielny plik .php odpowiedziany za pobieranie, wtedy nie będzie problemów, że coś z php-fusion się wyświetla.
siurek22
tez juz sobie tak pomyslalem ale + sie nalezy smile.gif
Działa
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.