![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam sprawnie skonstruowany formularz do przesyłania wielu plikow, dostępny po zalogowaniu. Działa dla katalogu zdefiniowanego bezpośrednio:
Zatrzymała mnie kwestia przesyłania plików do nazwy katalogu zdefiniowanego w tabeli users zawartość zmiennej trzymającej wartość wyświetla się prawidłowo
jednak nie mogę jej skleić w taki sposób
próbowałem bezpośrednio dokleić ."/' , .'/' ..ale tez nie łapie tego. dodanie do pola userdir w bazie np "katalog1/", tez nie działa jeśli znajdzie ktoś chwilę, będę wdzięczny za pomoc jak poprawnie "skladać" takie łańcuchy. Ten post edytował zoorg 26.08.2013, 10:20:34 |
|
|
![]() ![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dobrze kombinujesz i tak powinno działać. Coś innego wg mnie nie trybi, sciezka pełna?
A te katalogi są już utworzone? Jeżeli nie to sprawdzasz: is_dir i tworzysz: mkdir i wtedy upload -------------------- |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
1. ustawiona ścieżka jest względna eg: "katalog1/" w folderze localhost/nazwawww.com (w tym przypadku pliki przesyłają się prawidłowo) //katalogi istnieją, zaznaczalem katalog, kopiuj nazwe do notatnika, z tamtąd wrzutka w pole do db
2. wpisalem do pola folder w bazie ąźćł, i wyświetla to poprawnie nagl w kodzie includowanej strony header.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> wywołanie w index.php require 'header.php'; deklaracja strony kodowej w bazie danych utf8_bin, ..no i nie bangla ;] #update 3. niedo końca w pierwszej chwili odgadnąłem Twój zamysł, - spróbuję przeczesać to sprawdzajac czy jest folder i utworzyć go z poziomu php # UPDATE 2, boolean true potwierdza ze katalog istnieje, porównanie pola z bazy z katalogiem utworzonym na dysku przez porównanie "==" twierdzi ze ok, dla "===" - nazwy nie są zgodne (czy jeśil pole w db ma wiecej znaków niz zajmuje wartość to przy === porównywane są również spacje? ![]()
Mimo to nadal nie wgrywa pliku w opraciu o zmienną zbazy danych Ten post edytował zoorg 26.08.2013, 12:08:29 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Być może skrypt nie ma uprawnień do wgrania pliku do tego folderu. Sprawdź CHMOD
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
uprawnienia 0755, lokalne dostęp do katalogu wszyscy, wszytskie uprawnienia.
w przypadku wpisania nazwy katalogu $uploadDir = "katalog1/"; - jest ok - pliki spadają do katalogu, , popodstawieniu $uploadDir =$user['userdir'].'/'; - echo wyswietla "katalog1/" (wiec jakby prawidłowo..) wrzucam cały kod obsługujący przyslanie plików i obsługę komunikatów //$filename = basename($filepath); echo "Liczba przesłanych plików : ".count($_FILES['infile']['name'])."<br>"; $user = user::getData('', ''); echo '<h3>Prześlij pliki na konto: </h3> <h2>'.$user['userdir'].'</h2>'; // wyswietla poprawnie wartość z bazy danych "katalog1" var_dump(is_dir('katalog1')); echo 'sprawdzam czy na serwerze jest katalog katalog1'; //boolean true if (!strcmp($user['userdir']) == 'katalog1') { echo 'nazwa katalogu w bazie jest zgodna z katalogiem na serwerze'; // ta opcja wyswietla się w komunikacie po porównaniu } else echo 'nazwa z bazy nie zgadza sie z lokalną'; //$uploadDir = "katalog1/"; //tak zdefiniowany działa $uploadDir =$user['userdir'].'/'; //tak nie echo "$uploadDir".' taki jest obecnie zdefiniowany katalog'; //wyswietla "katalog1/" for ($i = 0; $i < count($_FILES['infile']['name']); $i++) { echo "Nazwa pliku : ".$_FILES['infile']['name'][$i]."<br>"; //tak zostawiam pelna nazwe oryginalnego pliku do wrzucenia do katalogu $fPath = $_FILES['infile']['name'][$i] . ".$ext"; echo "$fPath"; //wyciaga rozszerzenie //$ext = substr(strrchr($_FILES['infile']['name'][$i], "."), 1); // tak mozna składać nazwy, na randomie, albo ze slownika bazy danych //$fPath = md5(rand() * time()); //+ . ".$ext"; //dla obcietej nazwy echo "scieżka TEMP : ".$_FILES['infile']['tmp_name'][$i]."<br>"; //mozna wywalić $result = move_uploaded_file($_FILES['infile']['tmp_name'][$i], $uploadDir . $fPath); if (strlen($ext) > 0){ echo "Plik: ". $fPath ." przesłano pomyślnie. <br /><br />"; } } echo "<br /><br />Zakończono transfer.<br /><br />"; Echo "<a href=http://localhost/wwwxwww.com/>Powrót</a>" ?> w przypadku gdy katalog jest zdefiniowany "na stałe" skrypt ten wyświetla poprawnie listę przekopiowanych plików, w wypadku definicji katalogu dla z pola z bazy, wyświetla tylko podsumowanie ile plików zostało skopiowanych ..żeby było ciekawiej, na podstawie pola z bazy danych - nie ma żadnego problemu żeby mkdir-em utwożyć katalog (jesli nie istnieje) i nadać mu prawa (np 0755) , tylko nie chce bydle tego samego pola użyć ( z doklejonym .'/' ) jako ścieżki do przegrania pliku, ani w wersji absolutnej, ani relatywnej... Piwo dla bohatera który rozwiąże tę zagadkę. Wyślę! Ten post edytował zoorg 26.08.2013, 13:49:12 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Co wyświetla:
Ps. nie ma prawa dobrze działać strcmp działa inaczej (choćby to, że przyjmuje 2 parametry, porównaj sobie $user['userdir'] === 'katalog1' -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
do === doszedłem dwa dni temu, wyświetla jakąś niezgodność
sprawa jest niby prosta, wartość z pola bazy danych - bez problemu tworzy katalog, bez problemu nadaję temu katalogowi prawa, potwierdzam ze ten folder istnieje ale używajac tego pola, nie mogę po dodaniu '/' nic do tego folderu zapisać - moze jakieś konwersje, formatowanie do lewej, zamiana na hexy?? obcinanie spacji o co kurde caman Ten post edytował zoorg 28.08.2013, 19:00:20 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
to co to zwraca co podałem dokładną zwrotkę podaj i popraw tego strcmp
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Rozpykałem
problemem był zakres (zasięg) zadeklarowanych zmiennych używanych w konstrukcji formularza, wobec zmiennych służących do logowania i pozniej przetwarzania plików. Pomieszałem. Probowalem użyć zmiennej zadeklarowanej w funkcji (zasięg lokalny) zamiast pobrać wartości zmiennych ponownie z bazy w miejscu w ktorym je po prostu potrzebuję i tam dodać konkatenacje zeby utwożyć ścieżki. Reasumując - bardzo pouczająca lekcja 1. logowanie 2. odczyt wartości z bazy i przekazanie zmiennych 3. dostęp do funkcji podstrony dla odpowiedniego poziomu uprawnień, 4. użycie funkcji strony 5. zapis do bazy 6. prezentacja danych 7. przetwarzanie danych Fajnie aż miło (: Dziękuję wszystkim, którzy poświęcili swój czas zaglądając w ten temat Można zamykać! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:57 |