Skrypt bezbłędnie dodaje do bazy (i pozwala ściągać) wszystkie pliki graficzne, jednak, gdy dodam do bazy plik *.zip, *.rar, *.ace jego ściągnięcie jest niemożliwe.
Baza widzi wszystkie mniej "standardowe" pliki jako typ : application/octet-stream, co powoduje (jak mi się wydaje) nadpisanie złego nagłówka i de facto ściągnięcie pliku tekstowego (choć w rzeczywistości jest to np. .ace) .
Czy możliwy jest download tych "niestandardowych" plików z bazy MySQL ? Dlaczego PHP rozpoznaje typ tych plików zawsze jako "application/octet-stream" ?
Gdzie może być błąd ?
Skrypt UPLOAD :
<?php $plik_tmp = $_FILES['plik']['tmp_name']; $plik_nazwa = $_FILES['plik']['name']; $plik_rozmiar = $_FILES['plik']['size']; $plik_typ = $_FILES['plik']['type']; if ($plik_rozmiar>0){ $z = "insert into files values(NULL, NULL, '".$_POST['uploaded']."','".$_POST['opis']."','".$fileContent."','".$plik_typ."','".$plik_nazwa."',".$plik_rozmiar.",'".$_SESSION['login']."')"; } ?>
Skrypt DOWNLOAD :
<?php $z = "select* from files where id=".$_REQUEST['id']." and ( adm='".$_SESSION['login']."' or adm='public' or adm='local')"; // w polu adm jest tylko właściciel pliku ?>