![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 5.12.2016 Ostrzeżenie: (10%) ![]() ![]() |
Witam,
Korzystam z tego (https://www.developphp.com/video/JavaScript/File-Upload-Progress-Bar-Meter-Tutorial-Ajax-PHP) gotowego rozwiązania do przesyłania plików na serwer. Dodatkowo sam zrobiłem zapis url pliku do bazy. Mam jednak problem aby każdy plik miał inną nazwę. Chcę uniknąć posiadania na serwerze plików o dwóch identycznych nazwach. I tu pytanie jak to zrobić, aby np oryginalny plik o nazwie 'super pies.mp4' miał nazwę np 'super-pies-*.mp4' gdzie * to aktualna data |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Raczej opcji z datą nie polecam. Ktoś może np. wrzucić plik tego samego dnia i jeden plik zastąpi się drugim plikiem (zakładając, że będą one tej samej nazwy).
Bardziej pasowałoby użyć generatora np. 5 losowych znaków z cyfr i liter, wtedy zmniejszy się możliwość zastąpienia pliku. Ale jeżeli już:
Wersja z generatorem:
Ten post edytował Niree 5.12.2016, 02:02:25 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
A po co tak kombinować?
1. Jeśli zakładamy, że zawsze mamy bazę danych to używamy po prostu ID z bazy - proste i intuicyjne 2. Jeśli dopuszczamy brak bazy to nazwę pliku możemy wygenerować (mamy w tym celu dość szerokie spektrum funkcji oraz dodatków) Dodatkowo sugeruję aby: 1. Nazwa pliku zawierała tylko ID. Każde doklejanie do nazwy np. panieńskiego nazwiska matki twórcy aplikacji czy też rozszerzenia to dodatkowa komplikacja i utrudnienie. 2. Pliki umieszczać w subfolderach typu: plik abc w subfolderze a/b, plik 123 w subfolderze 1/2. Jak nie wiecie dlaczego, to spróbujcie np. odczytać pliki z folderu, gdzie jest ich kilkadziesiąt milionów. Nie wiem czemu każdy zakłada, że nikt nie będzie tego używał - czasami jednak ludzie wbijają ![]() Oczywiście o takich podstawach jak walidacja czy sprawdzenie, czy mamy odpowiednie prawa przed wywołaniem np. funkcji move_uploaded_files nie trzeba pisać. ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 5.12.2016 Ostrzeżenie: (10%) ![]() ![]() |
Raczej opcji z datą nie polecam. Ktoś może np. wrzucić plik tego samego dnia i jeden plik zastąpi się drugim plikiem (zakładając, że będą one tej samej nazwy). Dzięki za pomoc. Dodałbym jeszcze godzinę. Chyba jednak zdecyduję się na id. Mam pytanie odnośnie wydajności. Do plików zawsze będę znał dokładny adres, nie będą one wyszukiwane itp. jest więc konieczność grupowania ich w podkatalogi? czy mogą być wszystkie w jednym folderze? I drugie pytanie, czy w kodzie który podałem istnieje możliwość przesłania do pliku file_upload_parser.php dodatkową zmienną php nie podaną w formularzu. Niestety JavaScript to nie moja mocna strona. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Do plików zawsze będę znał dokładny adres, nie będą one wyszukiwane itp. jest więc konieczność grupowania ich w podkatalogi? Tak, jest koniecznosc.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc. Dodałbym jeszcze godzinę. Lepiej faktycznie grupować w katalogi. Zamiast "test_uploads" daj np. ID usera z bazy, albo jeszcze co innego, co mogłoby zidentyfikować użytkownika, który to wrzucił. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 00:38 |