Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
Witam
Stworzyłem kod dzięki któremu mogę wrzucać obrazki na serwer, jednak chciałbym abym mógł wrzuć pare obrazków a nie tylko 1 bardzo proszę o pomoc co mam dodać.
Pozdrawiam Darek Ten post edytował kafar610 12.02.2015, 15:52:56 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%)
|
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Jak widzisz $_FILES to tablica, gdzie pierwszy wymiar to nazwa wrzuconego pliku. Może być ich więcej jak 1, wszystko zależy od formularza.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
formularz mam dobry, jednak po wybraniu 2 zdj wyskakuje błąd "
Przesłany plik nie jest obrazekiem!!! Dostępne rozszerzenia: .gif, .jpeg, .pjpeg, .png" nie widzi 2 plików.. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Formularz masz może i dobry, ale w takim razie skrypt masz zły. Daj na samej górze skryptu coś w stylu:
I zobacz jak faktycznie wygląda tablica, którą przesyłasz. Ten post edytował b4rt3kk 12.02.2015, 16:32:27 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
i co dalej? Ten post edytował kafar610 12.02.2015, 16:36:31 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Przecież nie przesłałeś żadnego pliku, wrzuć ich kilka tak jak chciałeś i dopiero patrz co jest w tablicy. Masz error 4 - no file was uploaded.
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
array(1) {
["image"]=> array(5) { ["name"]=> array(3) { [0]=> string(6) "oc.jpg" [1]=> string(11) "tabelka.jpg" [2]=> string(8) "test.jpg" } ["type"]=> array(3) { [0]=> string(10) "image/jpeg" [1]=> string(10) "image/jpeg" [2]=> string(10) "image/jpeg" } ["tmp_name"]=> array(3) { [0]=> string(14) "/tmp/phpe6Q9rt" [1]=> string(14) "/tmp/phpNdFxJl" [2]=> string(14) "/tmp/php3SNt1d" } ["error"]=> array(3) { [0]=> int(0) [1]=> int(0) [2]=> int(0) } ["size"]=> array(3) { [0]=> int(451173) [1]=> int(339693) [2]=> int(431177) } } } |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
No i wszystko przecież masz podane jak na tacy. Zwróć uwagę chociażby na $_FILES['image']['name'], która jest tablicą nazw wrzuconych przez Ciebie plików.
Po prostu to co robisz obecnie musisz zrobić w pętli. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
no i zrobiłem pętle
juz widzi ze wrzucam 3 pliki lecz nadal wywala blad "Przesłany plik nie jest obrazekiem!!! Dostępne rozszerzenia: .gif, .jpeg, .pjpeg, .png Przesłany plik nie jest obrazekiem!!! Dostępne rozszerzenia: .gif, .jpeg, .pjpeg, .png Przesłany plik nie jest obrazekiem!!! Dostępne rozszerzenia: .gif, .jpeg, .pjpeg, .png" Pokaże ktoś jak powinno to wyglądać? doszedłem do tego momentu że 1.nie wywala błędów 2.niby widzę 3 obrazki ale 1 i ten sam 3. do bazy dodaje mi się jedynka (numer tablicy) zamiast nazwy obrazka
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Nie taka pętla... Nie widzisz na prawdę jaką strukturę ma ta tablica $_FILES?
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
zrobiłem tak jak mówiłeś i nic...
wyskakuje błąd Warning: move_uploaded_file() expects parameter 1 to be string |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
zrobiłem DOKŁADNIE jak w php.net i teraz obrazków nie wyświetla...
|
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Jak chcesz robić tak jak robisz, to chociaż przerzuć zmienne z których korzystasz do wnętrza pętli.
Nic nie zrobiłeś tak jak Ci podałem w przykładzie. Zmieniłeś tylko pętlę z for na foreach, a reszta została. Ten post edytował b4rt3kk 13.02.2015, 00:41:42 |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
Kod działa dzięki (IMG:style_emoticons/default/smile.gif) ale czemu do bazy obrazki dodają się podwójnie?
(IMG:http://www.iv.pl/images/14067587556061550675.png) |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
|
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
ahhh dzięki (IMG:style_emoticons/default/biggrin.gif)
Pomożesz mi jeszcze zmienić nazwę pliku przed przeniesieniem ich do folderu?
Próbowałem już użyć funkcji rename jednak wywala błąd "rename(oc.jpg,oc.jpg0) [function.rename]: No such file or directory" |
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 3 Dołączył: 31.01.2011 Skąd: Warszawa Ostrzeżenie: (10%)
|
Ja po prostu polecił bym Tobie takie coś (IMG:style_emoticons/default/wink.gif)
http://elfinder.org/ |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
$target to Twoja nazwa pliku. Zmień na dowolną (oczywiście poprzedzając odpowiednią ścieżką). Pamiętaj, żeby też zmienić nazwę, którą zapisujesz w bazie danych. Jak chcesz użyć rename to w ten sposób: Ten post edytował b4rt3kk 13.02.2015, 13:02:51 |
|
|
|
Post
#21
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
Działa!!! tylko haha, trochę nie o to mi chodziło (IMG:style_emoticons/default/haha.gif) on zapisuje tak np. test.jpg0 a ja bym chciał test0.jpg + nie wiem czy id to jest dobry pomysł, jak myślisz? po prostu nazwy plikow maja się nie powtarzać, i wgl czemu id się nie dodaje w sensie żeby było 1 2 3 4 itp a jest ciagle 0, jak to zrobić?
Coś wyczytałem o pathinfo ale za bardzo nie wiem jak mam tego użyć Ten post edytował kafar610 13.02.2015, 13:37:16 |
|
|
|
Post
#22
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Działa!!! tylko haha, trochę nie o to mi chodziło (IMG:style_emoticons/default/haha.gif) on zapisuje tak np. test.jpg0 a ja bym chciał test0.jpg + nie wiem czy id to jest dobry pomysł, jak myślisz? po prostu nazwy plikow maja się nie powtarzać, i wgl czemu id się nie dodaje w sensie żeby było 1 2 3 4 itp a jest ciagle 0, jak to zrobić? Coś wyczytałem o pathinfo ale za bardzo nie wiem jak mam tego użyć Najlepszym sposobem jest po prostu zapisać plik pod swoją roboczą nazwą, nawet bez rozszerzenia, a w bazie przechowywać jego prawdziwą nazwę. W momencie próby pobrania pliku (realizujesz to skryptem php) otwierasz dany plik, nadajesz mu nazwę z bazy i wypluwasz userowi treść. Czyli w bazie musiałbyś jeszcze przechowywać nadane przez siebie tmp_name, czy tam storage_name, jak wolisz. Przy okazji masz lepszą kontrolę nad tym co, kto otwiera, bez konieczności patrzenia w logi apatcha, bo po prostu zapisujesz to sobie w bazie, a dla usera nie ma żadnej różnicy. |
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
Czyli tak, przesyłam plik np test.jpg
1. Zapisuje go w folderze jako test 2. W bazie zapisuje go jako test.jpg 3. w momencie pobrania wybieram dany plik i zmieniam mu nazwę na jaka chce To naprawdę nie będzie miało kłopotów z takimi samymi plikami? Nie wiem czy dobrze to wszystko zrozumiałem... |
|
|
|
Post
#24
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Czyli tak, przesyłam plik np test.jpg 1. Zapisuje go w folderze jako test 2. W bazie zapisuje go jako test.jpg 3. w momencie pobrania wybieram dany plik i zmieniam mu nazwę na jaka chce To naprawdę nie będzie miało kłopotów z takimi samymi plikami? Nie wiem czy dobrze to wszystko zrozumiałem... Nie, plik zapisujesz np. jako jakiś hash, dajmy na to q45hy6ytr - powiedzmy, że jest to md5 z nazwy pliku i czasu przesłania (oczywiście ten hash również musisz mieć w bazie, żeby wiedzieć, który plik otworzyć), więc do bazy ładujesz ten hash do jednej kolumny i nazwę pierwotną pliku, np. test.jpg do drugiej kolumny. Kiedy ktoś chce pobrać plik, to dodajesz header, w którym wskazujesz, że jest to załącznik, otwierasz zawartość hasha, robisz echo pod header i userowi się pobiera. |
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
A jeśli plik ma się nie pobierać tylko to ma być link np. na forum to ma to jakieś znaczenie?
|
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
nie jedynie inny nagłówek mime ustawiasz, w tym wypadku obrazkowy zależny oczywiście od rozszerzenia obrazka a te nagłówki znajdziesz np tu http://www.sitepoint.com/web-foundations/m...-complete-list/
|
|
|
|
Post
#27
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
A w bazie to jakiego typu ma być ta kolumna na hash? varchar(64) starczy?
|
|
|
|
Post
#28
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
jak md5 to 32 (IMG:style_emoticons/default/wink.gif)
|
|
|
|
Post
#29
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
Na razie sklepałem coś takiego
i wyskakuje "Warning: rename(images/oc.jpg,d839ab8ac221360df66abc19a9fd8590) [function.rename]: No such file or directory in" |
|
|
|
Post
#30
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
|
|
|
|
Post
#31
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
haha no tak (IMG:style_emoticons/default/biggrin.gif)
Kiedy ktoś chce pobrać plik, to dodajesz header, w którym wskazujesz, że jest to załącznik, otwierasz zawartość hasha, robisz echo pod header i userowi się pobiera. Cytat nie jedynie inny nagłówek mime ustawiasz, w tym wypadku obrazkowy zależny oczywiście od rozszerzenia obrazka a te nagłówki znajdziesz np tu http://www.sitepoint.com/web-foundations/m...-complete-list/ A z tym to zielonego pojęcia nie mam jak to zrobić... Pokażecie jakiś przykład? Chce aby był taki link do pliku http://kafar.nazwa.pl/images/nazwa_pliku Ten post edytował kafar610 13.02.2015, 16:15:13 |
|
|
|
Post
#32
|
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%)
|
Potrzebujesz coś w rodzaju routera, czy też dispatchera, no i też przydałoby się zapisywać mime pliku do bazy. Później w htaccesie przekierowujesz wszystkie requesty z images na swój plik, powiedzmy index.php, gdzie odczytujesz a adresu id pliku do otworzenia.
|
|
|
|
Post
#33
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 13.01.2013 Skąd: Pruszków Ostrzeżenie: (0%)
|
Trochę trudne na początek... Nie ma łatwiejszego sposobu?
Dobra widze że nikt nie zna prostszego sposobu. To tak, zobacz czy wszystko dobrze zrozumiałem. 1. Tworze kolejna kolumne w bazie z mime zdjecia 2. Wyciągam mime pliku i zapisuje do bazy 3. w htaccesie przekierowuje wszystkie requesty z images na swój plik I jak mam wyciągnąć mime bo na to kompletnie nie mam pomyslu Dobra skminiłem coś takiego
ładnie wyciąga mime pliku i teraz co? Cytat w htaccesie przekierowuje wszystkie requesty z images na swój plik jak mam to zrobić? Ten post edytował kafar610 15.02.2015, 21:13:59 |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 22:17 |