Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapobieganie ponownemu uploadowi pliku
Forum PHP.pl > Forum > Przedszkole
Przemek1
Witam!
Jak zapobiec ponownemu przesłaniu pliku na stronę, która odbiera dane z formularza? Dla formularzy bez pola <input type="file"> postępowałem w następujący sposób:

1. Wysłanie formularza ze zmiennymi $_POST i flagą wypełnionego formularza
2. Serializacja $_POST przez skrypt odbierający, przed wysłaniem nagłówka
3. Wysłanie nagłówka z przekierowaniem przez Location ponownie do tego samego skryptu i wyzerowanie flagi wypełnionego formularza (żeby nie przekierować po raz kolejny)
4. Deserializacja $_POST i sytuacja wygląda tak jakby właśnie został wysłany formularz, a przeglądarka nie próbuje ponownie wysyłać danych dzięki wykonanemu przekierowaniu

Teraz pytanie jak to samo zrobić z zawartością $_FILES ? Albo jak inaczej zabezpieczyć się przed ponownym wysyłaniem plików przez przeglądarkę przy nawigacji dalej-wstecz?
Sądziłem, że serializacja $_FILES wystarczy, bo plik tymczasowy pozostanie dalej tam gdzie był załadowany, a serializowane $_FILES przechowa wszystkie parametry. Tymczasem $_FILES po deserializacji jest zawsze puste, nie wiem dlaczego.

Teraz zabezpieczam się tak, że zapisuję w sesji nazwy już odebranych plików i jak się powtórzy to wyświetlam komunikat. Ale oczywiście niepotrzebne przesyłanie ma nadal miejsce, a zabezpieczenie jest mało optymalne.

Czy ktoś wie jak się rozwiązuje taki problem?
Kuziu
Najprościej to chyba z headerem.

Po uploadzie dajesz header'a na inny adres i jest git
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.