Mam taki oto formularz
<form enctype="multipart/form-data" name="posting" action="upload_naprawiony.php?a=upload" method="post"> <input type="file" size="30" name="upload_picture"><input type="hidden" name="MAX_FILE_SIZE" value="<? echo $maxFileSize ?>">
<br /><textarea name="tekst" rows="10" columns= "30">Tutaj wpisz tekst komunikatu
</textarea><br /> <font size="1">Podaj odbiorcę pliku
</font><input name="odbiorca" type ="text"> <br /> <input type="submit" value="Wyślij plik" name="picture_send" class="but">
do tego skrypt go obsługujący
<?php
$maxFileSize = 2621440; //maksymalna wielko¶c' pliku w bajtach
$uploadFolder = 'naprawione/'; //folder, do którego be;d± kopiowane pliki
$acceptMIME = array('application/arj', 'application/winrar', 'application/zip', 'application/vnd.ms-excel',); //akceptowane typy plików (MIME Types)
if($_GET['a'] == 'upload')
{
$picture = $_FILES['upload_picture'];
if(empty($picture['error'])) {
$check = 0;
foreach($acceptMIME as $key => $value)
{
if($picture['type'] == $value)
{
$check = 1;
break;
}
}
if($check)
{
$send_picture = @move_uploaded_file($picture['tmp_name'], $uploadFolder.'/'.$picture['name']); if(!$send_picture) {$errorMsg = 'Błąd podczas kopiowania pliku do wyznaczonego folderu!';}
else {
/////////////// dodawanie do bazy ////////////////////////////
$nazwa_pliku=$picture['name'];
$login=$zalogowany;
$rozmiar=$picture['size'];
$odbiorca_pliku=$_POST['odbiorca'];
require_once('./polacz_z_baza.php');
if ($nazwa_pliku && $tekst && $login && $rozmiar && $odbiorca_pliku) {
$zapytanie = "INSERT INTO pliki_naprawione (id, login, nazwa_pliku, rozmiar, tekst, odbiorca)
VALUES ('', '$login' , '$nazwa_pliku', '$rozmiar', '$tekst', '$odbiorca_pliku')";
}
$info ='<div align="center"><font size="1">Udało się dodać opis!!!</font></div>';
} else
{
$info ='<div align="center><font size="1">Wystąpił nieoczekiwany błąd i opis nie został dodany!</font></div>'; }
/////////////// koniec dodawania do bazy ////////////////////
$errorMsg = '<div align ="center"><font size="1">Kopiowanie pliku zakończone sukcesem!</font></div>';
header ("Location: http://adreswsieci/upload_naprawiony.php");} }
else $errorMsg = '<div align ="center"><font size="1">Nieprawidłowy typ pliku!</font></div>';
}
else
{
switch($picture['error'])
{
case 1 :
$errorMsg = '<div align ="center"><font size="1">Rozmiar pliku przekracza maksymalny dopuszczalny rozmiar ustawiony w konfigur
acji php (php.ini)!</font></div>';
header ("Location: http://adreswsieci/upload_naprawiony.php"); break;
case 2 :
$errorMsg = '<div align ="center"><font size="1">Rozmiar pliku przekracza maksymalny dopuszczalny rozmiar ustawiony w skrypcie
!</font></div>';
header ("Location: http://adreswsieci/upload_naprawiony.php"); break;
case 3 :
$errorMsg = '<div align ="center"><font size="1">Plik nie został wysłany w całości!</font></div>';
header ("Location: http://adreswsieci/upload_naprawiony.php"); break;
case 4 :
$errorMsg = '<div align ="center"><font size="1">Żaden plik nie został wysłany</font></div>';
header ("Location: http://adreswsieci/upload_naprawiony.php"); break;
}
}
}
?>
Kiedy wysyłam pliki z firefoksa: przechodzą dwa typy xls i zip (były one standardowo ustawione w typach MIME obsługiwanych przez serwer) arj i rar nie przechodzą (te dodawałem sam i są widziane jako typy użytkownika). Nie sądzę żebym coś zrąbał.
Nazwy wpisałem takie jak widać w skrypcie a w polach extensions dałem ich rozszerzenia czyli rar i arj. Nie działa i nie jestem w stanie znaleźć przyczyny błędu.
Najdziwniejsze jest jednak to że sprawdzałem ten sam skrypt w ie 6 sp2 i o dziwo oprócz tych dwóch typów wymienionych nie przechodzą również zipy, formularz puszcza tylko pliki excela. Tutaj mnie zamurowało. Co jest z tym formularzem nie tak? Czy ie sam jeszcze dodaje coś do formularza?
----edit----
Do wstawiania kodu HTML służy tag [ html ]
!
Poprawiłem, ale już ostatni raz. Prosze używać poprawnego bbCode'u.
~mike_mech