![]() |
![]() |
![]()
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: 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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 17:28 |