Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: move_uploaded_file a zgoda na nadpisanie istniejącego pliku
Forum PHP.pl > Forum > PHP
bat21
Mój problem dotyczy uploadowania plików na serwer.

Na stronie edycyjnej określam tytuł pliku oraz lokalizację pliku za pomocą znacznika
  1. <input type="file">


przesyłam to do skryptu wykonującego upload jako $_POST (tytuł) i $_FILES (plik).

skrypt sprawdza najpierw, czy:
  • podano tytuł
  • plik ma dopuszczalne rozszerzenie i rozmiar

następnie sprawdza czy plik o tej nazwie istnieje w lokalizacji docelowej (file_exist). Jeżeli nie istnieje to wykonuje INSERT do bazy i przenosi plik z tmp do lokalizacji z użyciem move_uploaded_file.

problem pojawia się w chwili gdy okazuje się, że plik o nazwie identycznej jak w $_FILES['plik_uploadowany']['name'] już istnieje. Stworzyłem tam formularz z pytaniem czy należy plik nadpisać. Jeżeli nie to wracam do strony listującej pliki w lokalizacji. Jeżeli tak formularz przeładowuje skrypt i zaczyna sprawdzanie tytułu, typu plilku itd. ... i tu właśnie się zatrzymałem $_FILES['plik_uploadowany']['name'] przecież już nie istnieje.


Co można zrobić w tej sytuacji? Jak stworzyć efektywny mechanizm potwierdzania nadpisywania plików?
nospor
1) wysylasz plik
2) okazuje sięze istnieje. zapisujesz go wiec na serwerze pod jakas nazwą, ktora wymyslasz (np. nazwa pliku + timestamp) i zapamietujesz
3) wysylasz do kolesia forma z zapytaniem czy nadpisac. w formie tym w polu hidden zapisujesz te wymyslona nazwe.
4) jesli koles klinknie ze nadpisac, to przegrywasz ten plik juz z wlasciwa nazwa. jak kliknie ze nie nadpisac, to usuwasz

proste smile.gif

ja tam nigdy takich zabiegow nie robie. jak sie nazwa powtarza, to tworzy sie plik o takiej nazwie + kolejny numer porządkowy i juz. Ale to zalezy kto czego potrzebuje
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.