Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] skrypt pod FF nie przesyła plików na serwer
Forum PHP.pl > Forum > Przedszkole
raak07
Cześć
To mój kod do przesyłania plików.
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
<title>test</title>
</head>
<body>
<div>
<form enctype="multipart/form-data" action="in.php" method="POST">
<input name="plik" type="file" />
<input type="submit" value="Wyślij plik" />
</form>
<?php

    if (isset($_FILES['plik']['error']) )    {
    $plik_tmp = $_FILES['plik']['tmp_name'];
    $plik_nazwa = $_FILES['plik']['name'];
    $plik_rozmiar = $_FILES['plik']['size'];
    if (!empty($_FILES['plik']['name']) && $_FILES['plik']['type']!='application/pdf' ) {
        print "<div class=\"wiadomosc\" ><span style=\"color: #CC0000;\">Plik: <b>".$_FILES['plik']['name']."</b> o rozmiarze <b>".$_FILES['plik']['size']."</b>bajtów nie został przesłany na serwer!</span></div>";
    }
    if (!empty($_FILES['plik']['name']) && $_FILES['plik']['type']=='application/pdf' )    {
    if(is_uploaded_file($plik_tmp)) {
     move_uploaded_file($plik_tmp, "pliki/$plik_nazwa");
            print "<div class=\"wiadomosc\" >Plik: <b>".$_FILES['plik']['name']."</b> o rozmiarze <b>".$_FILES['plik']['size']."</b> bajtów został przesłany na serwer!</div>";    
            }
        }
    } else { print "Za duży plik"; }

?>
</div>
</body>
</html>

Problem to, że pliki nie są przesyłane na serwer pod FF.
IE przesyła poprawnie pliki typu *.pdf tak jak założyłem.
Zawartość "$_FILES['type']" pod FF to "application/download" a powinno być "application/pdf"(chyba??)
Proszę o pomoc
pozdrawiam
zend
  1. //na początku
  2. ini_set('display_errors' , 'On');
  3.  
  4. //jeśli jest jakieś dane zostały wysłane
  5. echo '<pre>';
  6. print_r($_FILES['plik']);
  7. echo '</pre>';

Po analizie dostosuj swój skrypt
varez
ty naprawde robisz zabezpieczenie uploadu w/g MIME wyslanego przez przegladarke? ohmy.gif
swietnie, podaj adres jak juz skonczysz, wykasuje Ci wszystko i zostawie zamiast strony glownej linki do stron na ktorych pisze jak porzadnie zabezpieczyc upload..

jezeli nie podoba Ci sie moja wizja poświęc 15 minut na google
raak07
Dziękuje za odpowiedzi i uwagi o bezpieczeństwie.
Tylko nadal nie rozumiem, dla czego plik jest przesyłany gdy uruchamiam go pod IE a ten sam plik nie jest przesłany gdy skrypt wykonywany jest pod FF
Jeszcze raz proszę o pomoc
Pozdrawiam
zend
Zrobiłeś to co napisałem? Jakie są wyniki? Faktycznie pusto?
raak07
Cześć
Dziękuję za zainteresowanie
Po wykonaniu Twojego skryptu wygląda to tak
gdy wykonuję go pod FF
Array
(
[name] => szkolenie.pdf
[type] => application/download
[tmp_name] => C:\WINDOWS\Temp\php97.tmp
[error] => 0
[size] => 51709
)

Array
(
[name] => Image0112.jpg
[type] => image/jpeg
[tmp_name] => C:\WINDOWS\Temp\php98.tmp
[error] => 0
[size] => 377225
)

a tak gdy wykonany jest pod IE

Array
(
[name] => szkolenie.pdf
[type] => application/pdf
[tmp_name] => C:\WINDOWS\Temp\php9A.tmp
[error] => 0
[size] => 51709
)

Array
(
[name] => Image0112.jpg
[type] => image/pjpeg
[tmp_name] => C:\WINDOWS\Temp\php9B.tmp
[error] => 0
[size] => 377225
)

Pozdrawiam
nospor
No to juz wiesz czemu przechodzi ci tylko pod IE: dales taki warunek na typ ze przechodzi tylko pod IE. Jak sam widzisz FF zwraca inny typ. smile.gif
raak07
Cześć
Dziękuję za zainteresowanie.
Wiem że typ jest inny, pisałem o tym już w pierwszym poście.
Pytanie, jak to możliwe że ten typ się zmienia na taki - application/download ale tylko u mnie.
Czy typ pliku nie jest stały i tak samo widziany przez różne przeglądarki?
Testowałem to na innych komputerach pod Chrome i też FF - tam jest ok.
Testowałem również inne typy plików pod moim FF i jest ok tz. odpowiedni typ dla pliku.
Ten typ zmienia się tylko u mnie i właśnie próbuję dojść co się przestawiło?
Wyczyściłem historię do zera, pliki ciasteczek też.
Jeszcze raz proszę o pomoc
Pozdrawiam
zend
To zależy czy grzebałeś aż tak głęboko we "wnętrznościach" przeglądarki, jeśli nie no to zaakceptuj że tak musi być smile.gif Możesz też zainstalować jakąś starszą/nowszą wersję firefoxa i sprawdźić, ale nie sądzę żeby to coś dało
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.