Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z upload do folderu pomimo atr. 777
Forum PHP.pl > Forum > Przedszkole
piotrekk
Witam,
mam taki problem. Uploaduje plik na serwer po uprzednim stworzeniu katalogu z atrybutami 777. Niestety plik sie nie przenosi i nie mam pojecia dlaczego.
  1. <?php
  2. $new = umask(0000);
  3. mkdir("prezenty/".$nazwaGrupy, 0777); // tworzy katalog
  4. umask($new);
  5.  
  6. $upload_dir = "prezenty/";
  7.                        
  8. foreach ($_FILES["zdjecie"]["error"] as $key => $error)
  9. {
  10.    if (is_uploaded_file($_FILES['zdjecie']['tmp_name'][$key]) && $error == UPLOAD_ERR_OK)
  11.    {
  12.        if ($_FILES['zdjecie']['size'][$key] > 5000000)
  13.            {
  14.                $_SESSION['error'] = "Wysyłany plik jest za duży. Nie może być większy niż 5 mb!";
  15.                header("Location: ../function/error.php");
  16.                exit;
  17.               }
  18.        else
  19.            {
  20.            $tmp_name = $_FILES["zdjecie"]["tmp_name"][$key];
  21.             $file_path = $upload_dir.$nazwaGrupy."/".$maxID.".jpg";
  22.            move_uploaded_file($tmp_name, $file_path);
  23.            }
  24.    }        
  25.    else
  26.    {
  27.        $_SESSION['error'] = "Przy przesyłaniu pliku wystąpił błąd. Prosimy spróbować jeszcze raz. Jeżeli problem będzie występował cały czas, prosimy powiadomić o tym administratora.";
  28.        header("Location: ../../function/error.php");
  29.        exit;
  30.    }
  31. }
  32. ?>


Jeżeli natomiast usunę $nazwaGrupy zrobię tak:
  1. <?php
  2. $file_path = $upload_dir.$maxID.".jpg";
  3. ?>


to plik już się przenosi. Sprawdzałem, $nazwaGrupy jest poprawna. Jeżeli chce zmienić później atrubut jeszcze raz, żeby sprawdzić czy jest 777 to wyskakuje mi w TC informacja, że "nie mogę zmienić atrybutów zdalnych plików"

Czy ktoś wie o co chodzi i jak rozwiązać ten problem?

dzieki
redelek
Cytat(piotrekk @ 29.01.2009, 10:41:58 ) *
  1. [php]<?php
  2. $new = umask(0000);
  3. mkdir("prezenty/".$nazwaGrupy, 0777); // tworzy katalog
  4. umask($new);
  5. ?>


Troszkę niewiadomych bo nadal nie wiem co to jest $nazwaGrupy ?
Zobacz tak.
ustaw
  1. <?php
  2. $new = umask(0777);
  3. ?>


Może to coś da. Lepiej jak byś pokazał cały skrypt.

Pozdrawiam
Redelek
Kamil Jura
Umask działa chyba na podstawie różnicy liczb, a nie że jak ustawisz umask na 0777 to katalog będzie mieć 0777. Tak jest w manualu napisane.
piotrekk
  1. <?php
  2. $nazwaGrupy = $_SESSION['grupa']; // jest to nazwa dla katalogu ktory tworzony jest przez mkdir ponizej
  3.  
  4. //---------------------------------------------
  5. $new = umask(0000);
  6. mkdir("prezenty/".$nazwaGrupy, 0777, true); // tworzy katalog
  7. umask($new);
  8.  
  9. $upload_dir = "prezenty/";
  10.                        
  11. foreach ($_FILES["zdjecie"]["error"] as $key => $error)
  12. {
  13.    if (is_uploaded_file($_FILES['zdjecie']['tmp_name'][$key]) && $error == UPLOAD_ERR_OK)
  14.    {
  15.        if ($_FILES['zdjecie']['size'][$key] > 5000000)
  16.            {
  17.                $_SESSION['error'] = "Wysyłany plik jest za duży. Nie może być większy niż 5 mb!";
  18.                header("Location: ../function/error.php");
  19.                exit;
  20.               }
  21.        else
  22.            {
  23.            $tmp_name = $_FILES["zdjecie"]["tmp_name"][$key];
  24.             $file_path = $upload_dir.$nazwaGrupy."/".$maxID.".jpg"; // sciezka do uploadu
  25.            move_uploaded_file($tmp_name, $file_path);
  26.            }
  27.    }        
  28.    else
  29.    {
  30.        $_SESSION['error'] = "Przy przesyłaniu pliku wystąpił błąd. Prosimy spróbować jeszcze raz. Jeżeli problem będzie występował cały czas, prosimy powiadomić o tym administratora.";
  31.        header("Location: ../../function/error.php");
  32.        exit;
  33.    }
  34. ?>


jak zmienię umask na taki jak pokazałeś to w ogóle nie działa( do redelek). W chwili obecnej tworzony jest katalog ale upload do niego nie działa. Wyskakuje mi w TC ze jest to zdalny katalog i nie mam mozliwości nawet zmienienia do niego atrybutow.

Jezeli usune $nazwaGrupy i stworze sam katalog z atr. 777 bez skryptu to moge do niego normalnie wszystko wrzucic, dlatego wydaje mi sie, że chodzi o wlasnie o to zeby katalog $nazwaGrupy miał inne niż "zdalny" własciwosci.

Zamiast robić to mkdir trzeba bylo wykonać to:
  1. <?php
  2. $katalog = "domains/malowanywelon.pl/public_html/panelGosci/admin/prezenty/";
  3.  
  4. // nawiązanie połączenia
  5. $conn_id = ftp_connect($ftp_serwer);
  6.  
  7. // logowanie
  8. $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
  9. // zmiana katalogu
  10. ftp_chdir($conn_id, $katalog);
  11. // próba stworzenia katalogu
  12.  
  13. if (ftp_mkdir($conn_id, $nazwaGrupy))
  14.  
  15. itd.
  16. {*/
  17. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.