Formularz do wysyłania plików (files.php):
Zadaniem tego formularza jest wysłanie POSTów do pliku index.php który wysyła plik za pomocą nagłówków. Zmienna $_GET['page']; mówi żeby index.php w dalszej części strony includował plik files.php który dodaje plik na serwer + do bazy, wyświetla pliki, umożliwia upload oraz zarządza usuwaniem itp.
Teraz fragment files.php który 'obrabia' wysłane uprzednio informacje o uploadowanym pliku:
$file_subject=$_POST['file_subject']; $file_comment=$_POST['file_comment']; db_connect(); //funkcja zdefiniowana gdzie indziej - działa ok //uaktualnienie bazy danych o upload'owany plik $query="INSERT INTO t_files VALUES ( NULL , '".$_FILES['userfile']['name']."' , '$file_subject', '$file_comment', '$added_by', NOW() , '$file_code', '0')"; //$added_by to id usera dodającego plik } if($count <> 1){ } else{ $file_message_return=0; } //jesli dodanie pliku do bazy == ok if($file_message_return==0){ { $strUploadDir = $path_to_file_folder.'/'.$new.'/' . $_FILES['userfile']['name']; else{echo 'Upload pliku nie powiódł się!'; } } else{ echo 'Wystąpił błąd podczas wysyłania pliku na serwer!'; } mysql_close(); } }
Teraz fragment files.php który wyświetla pliki w dziale download:
db_connect(); $query = "SELECT t_files.file_name , t_files.subject , t_files.comment , t_users.name , t_files.date_added , t_files.downloaded , t_files.id_file FROM t_files , t_users WHERE t_users.id_user=t_files.added_by ORDER BY t_files.id_file desc"; if ($num > 0) { //pomine zbedna reszte; wklejam tylko link do pliku $file='xxxxx/'.$row[6].'/'.$row[0]; } } } else { }
No i finalnie, najważniejszy kod: fragment index.php odpowiedzialny za obróbkę linku index.php?page=files&file_id=id&file_name=nazwa oraz za wysłanie nagłówków.
$path = 'xxxx/'.$_GET['file_id'].'/'.$_GET['file_name']; //sprawdzenie czy plik istnieje //header('Location: index.php'); } else{$nofile=1;} } echo' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>'; // itd htmla
Co tu jest nie tak, że Mozilla (i właściwie Opera też) nie może sobie z tym poradzić? Dodam, że plik da się zciągnąć w FF ale tylko przez klik prawym i 'Zapisz..' ale i tak przy nastepnym kliknięciu w jakikolwiek inny link na stronie wywala jej źródło z jakimiś krzaczkami. Dzieje się tak też po F5.