Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Mysql/Js/Ajax]Zaawansowany upload plików, Upload plikow, zapisywanie, odczyt , przypisanie
tibia009
post 11.11.2009, 16:44:47
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2009

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


Witam!
Proszę wszystkich o pomoc.
Chcialbym zrobic upload plikow, ktory byl by ladny graficznie z paskiem postepu. Mozna by uploadowac wiele plikow naraz. Chcialbym, zeby upload odroznial formaty plikow i przypisywal je do wyszczegolnionych kategorii. Np. jpg do zjec , avi do filmow itp. Chcialbym rowniez zeby , gdy ktos jest zalogowany- jego dane sa w sessji i bazie danych - jego dane zostaly pobranie i osadzily sie w bazie danych. W bazie danych zeby bylo zgromaczone: kto dodal , kiedy dodal, jaki plik, nr.pliku(przypisze sie to do uzytkownika(tzn, tylko uzytkownik zalogowany i ten ktory dodal ten plik bedzie mogl go usunac i widziec w swoim profilu)), stworzony zosanie nr pliku. Nie wiem czy wiecie o co chodzi, np. jak uploadujesz na rapid share to tworzy sie nr. A32D3A323, ktory jest indywidualny i unikatowy.

Chcialbym rowniez zeby po wpisaniu tego nr www.adresstrony.com/piki/NUMER zostala wczytana stronka mozliwoscia pobrania plikow.

Prosze w miare mozliwosci o pomoc jak to zrobic i od czego zaczac.exclamation.gif. I jaka metoda bylo by zrobic to najlepiej.
Plik zapisze sie w folderze na serwerze, anie w bazie danych- tam zostanie zapisana tylko sciezka do pliku.

Wiem ze pisalem w miare nie skladnie i mozna mnie nie zrozumiec. Prosze o luzne pomysly i idee. Z gory dziekuje za pomoc!
Go to the top of the page
+Quote Post
Blame
post 11.11.2009, 16:57:10
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Hmm. Ja zacząłbym od stworzenia tabeli w bazie z polami kolejno adrespliku, dodal, idpliku ewentualnie jeszcze jakieś inne dane. Potem stworzyłbym formularz upload'u, który pobierałby nazwę aktualnie zalogowanego usera, nazwę pliku i przypisywał mu unikatowe id, np. za pomocą time. Potem to wszystko wrzucamy do bazy. Następnie zrobił bym skrypt, który za pomocą $_GET pobierałby id pliku a następnie wysyłał plik do użytkownika używając położenia pliku z pola adrespliku. Co do odróżniania typów plików to jest taka fajna funkcja pathinfo, dzięki niej zrobisz parę if'ów które ustalałyby zmienną określającą folder docelowy w zależności od rozszerzenia i gotowe.


--------------------
Go to the top of the page
+Quote Post
cojack
post 11.11.2009, 16:59:16
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


To ja bym proponował pierw od kursu html, następnie kurs jquery, następnie kurs php, no i kurs sql, to będzie jakiś rok, półtora roku nauki, później z pół roku praktyki (zależy jak u kogo, czy miałeś styczność z programowaniem wcześniej czy nie), do 2 lat.

Sory kolego wróć za 3 lata i pokarz jak to napisałeś.

Nie myśl sobie że ktoś napisze takie coś za darmo dla Ciebie, bo tego jest już multum w internecie, wystarczy poszukać ajax upload, jquery ajax upload, i na pewno coś znajdziesz co by Cie uszczęśliwiło.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
tibia009
post 11.11.2009, 17:16:58
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2009

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


cojack jak masz zamiar umieszczac takie pomoce to lepiej sie nie udzielaj.
Mam stworzona baze danych z potrzebnymi tabelami do plikow, rowniez do uzytkownikow.
Nie wiem jak np. wygenerowac numer pliku który by sie nie powtarzal a byl dodatkowo adresem do pliku.
Myslalem zeby w bazie plikow dodac tabele w ktorej bedzie Nr.uzytkownika ktory dodal. Bedzie to nr uzytkownika ktory bedzie jak wiadomo indywidualny i napewno inny uzytkownik nie bedzie mogl "miec" tego pliku.

Czy przy uploadzie musi zostac stworzony plik o nazwie GEJA321 , czy sam nr. w bazie danych pozwoli na podstawie jakiegos pliku podstawic zmienne z bazy danych i to wystarczy to przedstawinia pliku?

I jak mialby wygladac sam adres do pliku? poprostu ../files/$zmienna?

Ten post edytował tibia009 11.11.2009, 17:23:07
Go to the top of the page
+Quote Post
darko
post 11.11.2009, 18:43:22
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat
Chcialbym rowniez zeby po wpisaniu tego nr www.adresstrony.com/piki/NUMER zostala wczytana stronka mozliwoscia pobrania plikow.


Jeśli masz już tabelę user to można zrobić w ten sposób, że unikatowy numer użytkownika tworzysz na podstawie md5 z jakiś niezmiennych pól w tabeli użytkownika, np. loginu i daty dodania do bazy. Wygenerujesz w ten sposób unikalny skrót md5 i tak nazwiesz katalog użytkownika (plus dostęp do tego folderu). Mankamentem takiego rozwiązania mogą być kolizje (tylko w przypadku jeśli masz baaaardzo dużo zarejestrowanych userów). Numer ten możesz przechowywać w bazie danych i powiązać z plikami, do których user ma pełny dostęp (z usuwaniem włącznie).

Co do uploadu plików to rzeczywiście warto skorzystać z gotowych rozwiązań, na przykład http://www.fyneworks.com/jquery/multiple-file-upload/ lub http://www.uploadify.com/


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
tibia009
post 11.11.2009, 18:49:51
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.11.2009

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


Dziekuje za pomoc.
Jeszcze raz chcialbym zapytac w jakis sposob losowac numer ktory: sie nie powtorzy, bedzie nie pokolei(nie chodzi o numer bo wtedy kazdy moglby wpisac i mial by dostep do pliku), nr dlugi w celu przechowywania naprawde wielu plikow powyzej 100 mln.
Go to the top of the page
+Quote Post
darko
post 11.11.2009, 18:54:16
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


to może token + jakiś określony ciąg znaków (jeśli wyczerpiesz wszystkie możliwości)? :

  1. echo md5(uniqid(rand(), true));


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
cojack
post 11.11.2009, 18:55:05
Post #8





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


  1. sha1(time());


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
darko
post 11.11.2009, 19:01:54
Post #9





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


cojack lepiej

  1. echo sha1(microtime(true));


bo dla dwóch żądań w tej samej sekundzie wygenerujesz dwa takie same ciągi znaków (sprawdź)


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 04:19