Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Poczta wewnętrzna załącznik
Forum PHP.pl > Forum > PHP
kilofmar
Witam.
Mam stworzoną pocztę wewnętrzną na stronie, użytkownicy mogą wysyłać do siebie wiadomości.
I teraz chcę stworzyć możliwość wysyłania załączników ale nie wiem jak je zapisywać:
- pliki zapisywać do bazy MySql ?
- czy do jakiegoś folderu?
Może ktoś już robił cos takiego i może mi poradzić.


Fifi209
Ja bym zapisywał w folderach nie obciążając dodatkowo bazy.
pedro84
Oczywiście, ze do folderu. Dla poprawy bezpieczeństwa możesz je przechowywać ponad folderem root i stworzyć plik, który będzie te pliki serwował sprawdzając wcześniej uprawnienia.
kilofmar
Co to znaczy "ponad folderem root" ?
pedro84
Wyjaśnię łopatologicznie:
twoja ścieżka to:
Kod
/home/kilofmar/public_html

czyli w tym przypadku będzie to kilofmar, po prostu folder niedostępny z poziomu www.
kilofmar
Ok rozumiem.
Mam jeszcze takie pytanie. Jak zapisywać te pliki tak aby uniknąć nadpisania w przypadku takiej samej nazyw.
Uriziel01
Nadawać im unikalne ID. Ewentualnei możesz robić suffixy w postaci (na przykład):
-nazwa.txt
-nazwa_1.txt
-nazwa_2.txt

Ale rozwiązanie bazujące na unikalnym identyfikatorze jest znacznie łatwiejsze do implementacji.
Tylko oczywiście wtedy zapisujesz sobie dodatkowo jaka była początkowa nazwa pliku aby wyświetlać ją dla użytkowników.
pedro84
Dobrym pomysłem jest dodawanie prefixu przed wiadomość, może to być microtime() bądź id wątku. Inną metodą jest wrzucanie plików do folderu z id wątku/id wiadomości.
Fifi209
md5 nazwy z microtime i masz unikalnie wink.gif
Uriziel01
Jest tylko 3,40282366920938e+38 (16^32) kombinacji tak na prawdę wink.gif
Fifi209
@up

SHA512 ?
Uriziel01
@up no dobra to już prędziej znajdzie milion na ulicy niż trafi dubel przy 512 bitach.

P.s-mam szczerą nadzieje iż nie otryzmamy warna za Off-top, mimo wszystko odpowiedziałem na zadane w temacie pytanie smile.gif
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.