Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_FILES i mechanizm zmiany nazwy pliku, jak jest taki plik na serwerze
Forum PHP.pl > Forum > PHP
Less
Cześć!
Robie skrypt dodawania pliku (formularz html i php) i mam juz opcję, ze skrypt sam sprawdza, czy dodawany plik jest juz na serwerze w danej lokalizacji, czy nie...

chciałbym jednak to udoskonalić. chciałbym, aby uzytkownik mógł w razie istnienia danego pliku na serwerze podjąć decyzję, czy czce zamienić, czy zrezygnowac, czy zamienic sama nazwe pliku.

Jak to zrobić? Jak do tego sie zabrać, na pewno sie da, jestem optymistą, ale jak ?


Prosze o podpowiedzi, wskazówki, to bardzo ciekawy problem.


Mam plik z formularzem, plik odbierajacy formularz, a w nim: albo dodaje plik, albo gdy wykryje plik funkcja, pyta, czy chcę zmienić nazwę pliku. Formularz przekazuje nową nazwę do zmiennej upload i nazwę pliku tymczasowa do siebie samego (action="?") - ale to nie działa... czegos po odswierzeniu brak, zapewne albo danych tablicy $_FILES (ale raczej nie) albo samego pliku tymczasowego... nawet jak przekazuje nazwe oryginalna (dla próby, zamiast zmienionej), to jest bład i nie dodaje pliku...

cofnąłbym ponownie do pliku z form i inputem file, ale nie wiem jak przekazać polu file w formularzu ścieżke do pliku jako wartość domyslna, a poza tym to nie pomoze mi zmienic nazwy tego pliku... bo tam mozna wybrać tylko scieżke istniejącego pliku...


Co mam robic ?
Kasyx
Hmm.

Jak napotkasz problemy, to zapisz sobie ten plik w buforze w jakimś osobnym folderze. Zrobie to za Ciebie funkcja move_uploaded_file
I zapamiętaj sobie tą ścieżkę (w sesji czy gdzieś). Gdy już to zrobisz to w drugim formularzu wystarczy rozważyć co użytkownik chce zrobić:
a) nic nie robi - kasujesz plik z bufora funkcją unlink
cool.gif nadpisać stary plik, no to copy do odpowiedniego folderu i unlink w buforze (chyba, że jest funkcja przenoszenia, ale nie znalazłem)
c) zmienić nazwę, to rename w buforze i przeniesienie do zadanego folderu (czyli copy i unlink z bufora chyba, że jest funkcja przenosząca plik)

Możesz sprawdzić, czy move_uploaded_file działa na wszystkie pliki. Ale w dokumentacji mowa jest tylko o plikach przesyłanych Http'kiem smile.gif
Less
Dzieki!!! to bardzo proste, racja!

do przenoszenia pliku słuzy funkcja rename() wiecej w manualu, zmiana nazwy to jej dodatkowa ewentualna funkcja

Moze komuś sie przzyda i wreszcie kliknie mnie, ze mu pomogłem ?


Pozdrawiam wszystkich!
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.