Forum Katalogu Ciekawych Stron Strona Główna  Forum Katalogu Ciekawych Stron Strona Główna  
 
FAQ  FAQ   Szukaj  Szukaj   Użytkownicy  Użytkownicy   Ranking systemów  Ranking systemów   Grupy  Grupy  
 
Rejestracja  ::  Zaloguj Zaloguj się, by sprawdzić wiadomości
 
Forum Katalogu Ciekawych Stron Strona Główna » PHP / MySQL oraz inne bazy danych » Problem z pobieraniem pliku z bazy danych

Napisz nowy temat  Odpowiedz do tematu
 Problem z pobieraniem pliku z bazy danych « Zobacz poprzedni temat :: Zobacz następny temat » 
Autor Wiadomość
edytakj
PostWysłany: 27 Sie 2007, 19:05    Temat postu: Problem z pobieraniem pliku z bazy danych Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 27 Sie 2007
Posty: 1


Utworzylam tablicę PLIKI w bazie danych, w której są przechowywane pliki

typu(*.pdf,*.doc itd) struktura tej tablicy jest nastepująca:
IdPlik:int
Plik: MEDIUMBLOB
Nazwa:char
Typ:char
Rozmiar:char

Utworzyłam skrypty:

1. odpowiedzialny za dodanie pliku do bazy DZIALA w sumie dobrze

Kod:
<?PHP

if (isset($_FILES['plik']))
{
 if ($_FILES['plik']['error']==UPLOAD_ERR_OK)
  {
   $nazwapliku=$_FILES['plik']['name'];       
   $typpliku=$_FILES['plik']['type'];       
   $rozmiarpliku=$_FILES['plik']['size'];       
   $srcplik=$_FILES['plik']['tmp_name'];   

   if ($typpliku=="application/msword" || $typpliku=="application/pdf" ||
       $typpliku=="text/html" || $typpliku=="application/rtf" ||
       $typpliku=="application/vnd.oasis.opendocument" || $typpliku=="text/plain" )
       {
         $plik=fopen($srcplik,"r"); //otwórz ten plik w trybie do odczytu
         $mysqlplik = addslashes(fread($plik,$rozmiarpliku));
         fclose($plik);     
         unlink($srcplik);
         $mysqltyppliku = addslashes($typpliku);
         $mysqlnazwapliku = addslashes($nazwapliku);
         $conn=mysql_connect("localhost","root","")
         or die ('Błąd połączenia z bazą MySQL: '.mysql_error());
         $result2=mysql_select_db("farmacja",$conn)
         or die ('Błąd podczas wyboru bazy: '. mysql_error());
         $sql1="INSERT INTO pliki (Idplik,plik,typ,nazwa,rozmiar)VALUES
         ('','$mysqlplik','$mysqltyppliku','$mysqlnazwapliku','$rozmiarpliku')";
         
        if($result1=mysql_query($sql1,$conn))
         echo('Twój plik został zapisany do bazy danych MySQL');
         else
         echo('Błąd wykonania zapytania 1: '. mysql_error());
   }
   else {die("Twój plik nie został zapisany w bazie, bo jest innego formatu niż:
 pdf,doc,txt,html,rtf !!!"); exit;}
 }
 else {die("Błąd podczas wysyłania pliku !!!"); exit;}
}
else {die("Nie wskazano pliku do wysłania !!!"); exit;}

?>


2.pobieram plik z bazy i mam mozliwosc zapisania go na dysku (nie dziala)

Kod:
<?PHP

$conn=mysql_connect("localhost","root","") or die ('Błąd połączenia z bazą MySQL: '.mysql_error());
$result1=mysql_select_db("farmacja",$conn) or die ('Błąd podczas wyboru bazy: '. mysql_error());
$sql1="select * from pliki where IdPlik='16'";
$result2=mysql_query($sql1,$conn) or die ('Błąd wykonania zapytania 1: '.mysql_error());
$row = mysql_fetch_assoc($result2);
$pliczek=$row['plik'];
$typpliku=$row['typ'];
$nazwapliku=$row['nazwa'];
$rozmiarpliku=$row['rozmiar'];
header("Content-Type:$typpliku");
header("Content-Length: $rozmiarpliku");
header("Content-Disposition: attachment; filename=$nazwapliku");
print $pliczek;

?>


Przegladarka (INTERNET EXPLORER 7.0) wyrzuca mi nastepujace bledy, jak temu

zaradzic:

Warning: Cannot modify header information - headers already sent by output started at c:\usr\apache\httpd\html\index\pliki\wyswietl.php:2)
Warning: Cannot modify header information - headers already sent by (output started at c:\usr\apache\httpd\html\index\pliki\wyswietl.php:2)
Warning: Cannot modify header information - headers already sent by (output started at c:\usr\apache\httpd\html\index\pliki\wyswietl.php:2)
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
KCS
Wysłany:     Temat postu: Reklama w KCS







Powrót do góry
road...
PostWysłany: 02 Wrz 2007, 07:34    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 02 Wrz 2007
Posty: 2


Zamień część twojego kodu:

Kod:
header("Content-Type:$typpliku");
header("Content-Length: $rozmiarpliku");
header("Content-Disposition: attachment; filename=$nazwapliku");


na to:

Kod:
ob_end_clean();

header("Content-Type:$typpliku");
header("Content-Length: $rozmiarpliku");
header("Content-Disposition: attachment; filename=$nazwapliku");

flush();
die();


i bedzie śmigać Wink
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Napisz nowy temat  Odpowiedz do tematu Strona 1 z 1


Forum Katalogu Ciekawych Stron Strona Główna » PHP / MySQL oraz inne bazy danych » Problem z pobieraniem pliku z bazy danych
Skocz do:  



Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


katalog stron | forum
Powered by phpBB © 2005 phpBB Group