[js] jak pobrać rozmiar pliku

Odpowiedz Nowy wątek
2006-11-10 23:08
zxc
0

Z tego co mi wiadmom to nie można z poziomu JavaScript dobrać się do rozmiaru jakiegoś pliku na dysku lokalnym. Może znacie jakieś sztuczki aby to zrobić?

Chodzi mi o to aby przed uploadowaniem pliku na server sprawdzić czy rozmiar wysyłanego pliku nie jest za duży (po co ktoś ma wysyłać 100 MB skoro server mu tego nie przyjmie)

Pozostało 580 znaków

2006-11-11 00:23
0

Możesz to zrobić językiem server-side, bo i nim wysyłasz plik na serwer. W JS tego nie osiągniesz.


homepage
<font size="1">Jeśli starasz się, by Twój system był idiotoodporny, zawsze znajdzie się idiota, który jest bardziej pomysłowy od Ciebie.</span>

Pozostało 580 znaków

2006-11-11 01:08
0

robiąc skrypt w perlu możesz zerwać połączenie zaraz po dostaniu nagłówka z rozmiarem pliku
możesz też dodać ukryte pole do formularza - nie pamiętam jak się ono nazywa i chociaż w praktyce nigdy nie wypróbowałem to teoretycznie przeglądarka nie powinna dopuścić do wysłania pliku przekraczającego rozmiar podany w tym parametrze


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-11-11 01:14
0

w php limit przesylanego pliku jest ustawiony w php.ini(zwykle 4MB) i nie prześle nigdy na serwer więcej danych


It's not just about livin' forever Johny.
The trick is livin' with yourself forever.

Pozostało 580 znaków

2006-11-11 11:14
0
ciapek888 napisał(a)

w php limit przesylanego pliku jest ustawiony w php.ini(zwykle 4MB) i nie prześle nigdy na serwer więcej danych

nie prześle ale będzie próbował więc o tym że nie prześle dowie się dopiero po kilkunastu minutach co może wkurzyć


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-11-12 21:57
zxc
0
Adamo napisał(a)

nie prześle ale będzie próbował więc o tym że nie prześle dowie się dopiero po kilkunastu minutach co może wkurzyć

No właśnie. A ja chciałbym tego uniknąć. Formularz odbiera strona PHP. Czy można szybko wykryć że użytkownik próbuje wepchnąć za duży plik i przerwać jego upload?

Adamo napisał(a)

robiąc skrypt w perlu możesz zerwać połączenie zaraz po dostaniu nagłówka z rozmiarem pliku

Czy da się to zrobć w PHP? W $_FILES nigdzie nie ma mowy o rozmiarze plik.

Pozostało 580 znaków

2006-11-14 22:07
0

No jak nie ma, jak jest.

$_FILES['plik']['size']

homepage
<font size="1">Jeśli starasz się, by Twój system był idiotoodporny, zawsze znajdzie się idiota, który jest bardziej pomysłowy od Ciebie.</span>

Pozostało 580 znaków

2006-11-15 07:38
0
Coldpeer napisał(a)

$_FILES['plik']['size']
No tak, tylko że w tablicy $_FILES cokolwiek pojawi się dopiero po przesłaniu całego pliku


It's not just about livin' forever Johny.
The trick is livin' with yourself forever.

Pozostało 580 znaków

2006-11-15 14:41
0

Tak? :> A np. takie coś to jak działa?

// czy rozmiar pliku jest mniejszy od 2 kB
if($_FILES['plik']['size'] < 2048)
{
  move_uploaded_file(...); // dopiero przesyłamy plik
}

homepage
<font size="1">Jeśli starasz się, by Twój system był idiotoodporny, zawsze znajdzie się idiota, który jest bardziej pomysłowy od Ciebie.</span>

Pozostało 580 znaków

2006-11-15 14:57
zxc
0

move_uploaded_file(...); // dopiero przesyłamy plik

W tym momencie plik już jest przesłany, tylko znajduje się w tempie pod tymczasową nazwą.
move_uploaded_file służy do przeniesienia tego pliku z temp'a do właściwego katalogu na serwerze

Pozostało 580 znaków

2006-11-15 15:26
0

Racja [wstyd] Zapomniałem o $_FILES[]['tmp_name'].


homepage
<font size="1">Jeśli starasz się, by Twój system był idiotoodporny, zawsze znajdzie się idiota, który jest bardziej pomysłowy od Ciebie.</span>

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0