We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Problem z uploadem plików


lol3k
16-01-2006, 14:55
Kod:
if (is_uploaded_file($_FILES['plik']['tmp_name']))
{
	if ($_FILES['plik']['size'] > $max_size)
	{
		echo 'Bład!!! Plik jest za duzy
Wyslij mi go na mejla to go sam wrzuce...

'; } else { $cath = $_POST['cathegory']; $sub = $_POST['subject']; $path = ''; switch ($cath) { case 'Sprawozdanie': $path = 'files/spraw/'.$_FILES['plik']['name']; break; case 'Sciaga': $path = 'files/sciagi/'.$_FILES['plik']['name']; break; case 'Inne': $path = 'files/inne/'.$_FILES['plik']['name']; $sub = NULL; break; } echo 'Odebrano plik o nazwie: '.$_FILES['plik']['name'].'
'; move_uploaded_file($_FILES['plik']['tmp_name'], $path); chmod($path, 0777); echo 'Plik umieszczony w kategorii: ' .$cath.' -> '.$sub.'
'; } }
Poza drobnymi dodatkami nie widze żadnej różnicy. Więc jeżeli to nie wina zmiennej $lokalizacja to nie wiem czemu Ci nie działa.

pozdrawiam...

elpincho
16-01-2006, 00:28
Cytat Napisał lol3k
Mam taki sam skrypt i mi śmiga bez problemu.

Upewnij się, że $lokalizacja odwołuje się do prawidłowgo miejsca np "users/files/plik.txt" a nie do "/users/files/plik.txt". Innego błędu nie widze.
PS: To tylko taka sugestja bo za bardzo się jeszcze na tym nie znam
$lokalizacja jest poprawnie wpisana, bo gdzie indziej chodzi, aż miło. Serwery mają włączoną opcję Safe Mode, która ogranicza move_uploaded_file , ale nie wiem w jaki sposób i jak to przeskoczyć.

Jakbyś mógł to wklej mi proszę ten swój skrypcik. Będę bardzo wdzięczny.

lol3k
13-01-2006, 19:04
Mam taki sam skrypt i mi śmiga bez problemu.

Cytat Napisał elpincho
Kod:
**     if (!move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'], $lokalizacja))
Upewnij się, że $lokalizacja odwołuje się do prawidłowgo miejsca np "users/files/plik.txt" a nie do "/users/files/plik.txt". Innego błędu nie widze.
PS: To tylko taka sugestja bo za bardzo się jeszcze na tym nie znam

elpincho
13-01-2006, 15:14
Cytat Napisał Łabędź
Dlaczego wrzucasz plik do '/home'? Wrzuć go do swojego katalogu, bo do innych nie masz uprawnień.

pozdrawiam
Ja go tam nie wrzucam. System sam go wrzuca jako plik tymczasowy do /home/tmp/nazwa_tymczasowa_pliku, a następnie próbuje go skopiować do mojego katalogu. I tu pojawia się problem i wyskakuje błąd.

Czy jest możliwość wrzucania plików bezpośrednio do mojego katalogu z ominięciem zgrywania do katalogu tymczasowego?

Łabędź
13-01-2006, 14:31
Cytat Napisał elpincho
Kod:
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 27050 is not allowed to access /home owned by uid 0 in /home/e/p/p/epp/www/upload/wyslij.php on line 42
Dlaczego wrzucasz plik do '/home'? Wrzuć go do swojego katalogu, bo do innych nie masz uprawnień.

pozdrawiam

elpincho
13-01-2006, 13:20
Mam napisany taki prosty skrypcik do wysyłania plików na serwer:

Kod:
if (is_uploaded_file($_FILES['plikuzytkownika']['tmp_name']))
  {
        echo "File ". $_FILES['plikuzytkownika']['tmp_name'] ." upload prawidłowy.\n";
**     if (!move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'], $lokalizacja))
     {
        echo 'Problem: Plik nie może być skopiowany do katalogu';
        exit;
     }
  }
w miejscu oznaczonym ** dostaję następujący błąd:

Kod:
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 27050 is not allowed to access /home owned by uid 0 in /home/e/p/p/epp/www/upload/wyslij.php on line 42
Błąd wynika chyba z faktu, że serwis ma włączoną opcję Safe Mode. Jak to przeskoczyć, żeby ten skrypcik działał?