Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Upload do katalogu zależny od nazwy użytkownika
zoorg
post
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:

  1. $uploadDir = "katalog1/";


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
  1. $user = user::getData('', '');
  2. echo '<h3>Prześlij pliki do katalogu: </h3> <h2>'.$user['userdir'].'</h2>';


jednak nie mogę jej skleić w taki sposób

  1. $uploadDir =$user['userdir'].'/';





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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zoorg
post
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
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 17:28