Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z plikami w bazie danych
Forum PHP.pl > Forum > Przedszkole
edytakj
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
Cytat
<?PHPif (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 exclamation.gif!"); exit;}
}
else {die("Błąd podczas wysyłania pliku exclamation.gif!"); exit;}
}
else {die("Nie wskazano pliku do wysłania exclamation.gif!"); exit;}
?>

2.pobieram plik z bazy i mam mozliwosc zapisania go na dysku (nie dziala)
Cytat
<?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)
Cienki1980
Zamykam

Po pierwsze brak tagu - Tematyka i zasady panujące na forum Przedszkole

Po drugie - do PHP jest odpowiedni BBCode a nie tylko [ code] do wszystkiego

Po trzecie - zapraszam do wyszukiwarki. Wystarczy wpisać początek błędu a w rezultacie dostaniesz ogromną ilość postów i w wielu z nich jest rozwiązanie.

Po czwarte - crossposting - czyli założyłaś dwa wątki dokładnie takie same.
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.