Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazanie do bazy informacji o plikach img
mkoszar
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 10.09.2020

Ostrzeżenie: (0%)
-----


Witam.
Mam prośbę o podpowiedź jak poradzić sobie z takim zagadnieniem, mianowicie:

Jest formularz, którym użytkownik przekazuje dane do bazy: Autor, Nazwa, Opis.
Ale jeszcze do katalogu uploaduje zdjęcia poprzez
<input name="upload[]" type="file" multiple>
W bazie danych mam oczywiście kolumny tak nazwane. Wpisuję/pobieram i jest OK.

I teraz pytanie/problem polega na tym, jak zapisać informację o obrazach w bazie ? Co prawda mam tablicę upload[] przesłaną z inputa... ale informacji ile ktoś prześle obrazków nigdy nie będę miał...

Pomyślałem, żeby zrobić kolumnę img i tam wpisać nazwy plików przesłanych przez użytkownika? Ale co? dodawać np średniki po nazwach w później jakimś wyrażeniem regularnym pobierać po średnikach.. bo docelowo chciałbym, żeby to były osobne <img src="/katalog/$zmienna"> (IMG:style_emoticons/default/questionmark.gif)

nie wiem czy dobrze kombinuje
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LowiczakPL
post
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


jeśli masz pole

  1. <input name="images[]" type="file" multiple>


to robisz foreach po $images i pobierasz sobie nazwy plików, zapisujesz każdy plik, modyfikujesz czy co tam chcesz

w bazie danych możesz to przechowywać jako zserializowna tablicę

wiec zawsze będziesz wiedział ile i jakie sa pliki

Tylko nie zapisuje się na serwerze plików w oryginalnej nazwie usera, tylko musisz nadać im swoje unikalne nazwy i te nazwy też zapisać w tej swojej tablicy

Do unikalnej nazwy pliku możesz zastosować sobie np:

  1. $info = new SplFileInfo('foo.txt');
  2. $ext = '.' . $info->getExtension();
  3.  
  4. $prefix = bin2hex(random_bytes(4));
  5. $name = $prefix . time() . $ext


Ten post edytował LowiczakPL 13.01.2021, 12:46:47
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 17:27