jarr2006 Opublikowano 25 Lutego 2006 Zgłoś Opublikowano 25 Lutego 2006 Witam, Tworząc stronę napotkałem następujący problem (i nie mam pojęcia, jak go "rozwiązać"... na google nie znalazłem odpowiedzi). Chciałbym, aby skrypt (PHP) sprawdzał rozmiar pliku przed skopiowaniem go na serwer... Czy istnieje taka możliwość? Nie mogę skorzystać z funkcji filesize() ponieważ, plik nie znajduje się jeszcze na serwerze. A zależy mi na tym, aby odwiedzający moją stronę nie mogli załączać załączników o rozmiarze większym niż 300kb. Czy ktoś ma jakiś pomysł? Pozdrawiam i z góry dzięki! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ayem Opublikowano 25 Lutego 2006 Zgłoś Opublikowano 25 Lutego 2006 (edytowane) tak sobie wpakuj w w okienko do uploadu mniej wiecej <input type="file" name="attach" size="20" /> cos takiego bedzie potem zeby sie do tego dobrac: $file = $_FILES['attach']; echo 'rozmiar ' . $file . ': ' . filesize($file); mam nadzieje - musze sie wbic na serwer to sprawdze. [edit] http://www.leon.w-wa.pl/texts/kurs/upload.php tu masz linka do pelnej realizacji - dziwne, bo to co napisalem kiedys dzialalo, a teraz nie moge zmusic do wspolpracy - czary Edytowane 25 Lutego 2006 przez ayem Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 25 Lutego 2006 Zgłoś Opublikowano 25 Lutego 2006 na mój gust to treba to sprawdzić po stronie klienta... za pomocą np JavaScriptu... i tam podjac decyzje czy wysyłąć czy nie.. albo też spradzić.. wysłać dane do servera.. a ten zrobi z tym co zechce... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ayem Opublikowano 25 Lutego 2006 Zgłoś Opublikowano 25 Lutego 2006 (edytowane) spokojnie mozna to realizowac po stronie serwera. tyko nie wiem czemu nie cce wspolpracowac :( ale prace trwaja - niestety dzis jestem niezle wymeczony oki dziala ;) html: <html><body><form enctype="multipart/form-data" action="test.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <input name="plik" type="file" /> <input type="submit" value="Wrzuć" /></form></body></html> test.php <?phpif (is_uploaded_file($_FILES['plik']['tmp_name'])) { echo "Udalo sie uploadować plik: ". $_FILES['plik']['name']."\n"; echo 'Objetość: '. filesize($_FILES['plik']['tmp_name']);} else { echo "BLAD: "; echo "nazwa pliku: '". $_FILES['plik']['tmp_name'] . "'.";}?> mam nadzieje ze to pomorze :) zapomnialem o kaprysnosci w stosunku do kolejnosci wykonywana czynnosci (szczegolnie w form), ktora czasem sie w php pojawia - nie wiedziec czemu. Edytowane 25 Lutego 2006 przez ayem Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
jarr2006 Opublikowano 26 Lutego 2006 Zgłoś Opublikowano 26 Lutego 2006 super:) dzięki za szybką pomoc..... juz zabieram się za testowanie kodu :) Pozdros! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ya23 Opublikowano 7 Marca 2006 Zgłoś Opublikowano 7 Marca 2006 Chciałbym, aby skrypt (PHP) sprawdzał rozmiar pliku przed skopiowaniem go na serwer(...)Nie mogę skorzystać z funkcji filesize() ponieważ, plik nie znajduje się jeszcze na serwerze. tak sobie wpakuj w w okienko do uploadu mniej wiecej <input type="file" name="attach" size="20" /> cos takiego bedzie potem zeby sie do tego dobrac: $file = $_FILES['attach']; echo 'rozmiar ' . $file . ': ' . filesize($file); mam nadzieje - musze sie wbic na serwer to sprawdze. 1980986[/snapback] na mój gust to treba to sprawdzić po stronie klienta... za pomocą np JavaScriptu... i tam podjac decyzje czy wysyłąć czy nie.. albo też spradzić.. wysłać dane do servera.. a ten zrobi z tym co zechce... Sposob ayema bedzie dzialal, ale juz po umieszczeniu pliku na serwerze. Najlepiej jest zrobic tak jak napisal Pelzak - sprawdzic za pomoca js rozmiar pliku jeszcze po stronie klienta, jesli bedzie on za duzy to transfer nie rozpocznie sie. W przypadku wyslania pliku, a potem sprawdzenia jego rozmiaru musi on byc przeslany, a to moze byc problem jesli masz wolne lacze, ograniczony transfer miesieczny etc. Naturalnie ze wzgledow bezpieczenstwa (js jest po stronie klienta i nie jest problemem ominac sprawdzanie) uzyj rowniez sposobu z php - jesli ktos ominie js to co prawda plik zostanie przeslany, ale i tak bedzie odrzucony. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ayem Opublikowano 7 Marca 2006 Zgłoś Opublikowano 7 Marca 2006 hmm moze i racja, plik i tak trafia do bufora na dysku. troche przegapilem ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...