Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyłanie plików przez formularz(prob z chmod)
Forum PHP.pl > Forum > PHP
Gib21
  1. <form action="" method="POST" ENCTYPE="multipart/form-data">
  2. <?php
  3. $folder="./../graphics/fotos";
  4. function mkdir_form()
  5. {
  6.     GLOBAL $folder, $new_dir;
  7.     $ndir="";
  8.     if (isset($_POST['new_dir'])) $ndir="$_POST[new_dir]";
  9.     echo("
  10.             <input type=\"file\" name=\"plik\"/><br/>
  11.             <input type=\"hidden\" name=\"action\" value=\"make_dir\" />
  12.             <input type=\"hidden\" name=\"folder\" value=\"$folder\" />
  13.             <b>$folder</b>
  14.             <br />
  15.             <input type=\"text\" name=\"new_dir\" size=\"10\" value=\"$ndir\" />
  16.             <input type=\"submit\" value=\"Wyślij plik\" name=\"submit\" />
  17.         </form>
  18.     ");
  19. }
  20. function make_dir()
  21. {
  22.     GLOBAL $folder, $new_dir;
  23.         @mkdir("$_POST[folder]/$_POST[new_dir]", 0777);
  24. }
  25.  
  26.     if (isset($_POST['action'])=="make_dir")
  27.     {
  28.         make_dir();
  29.     }
  30.  
  31. if (isset($_POST['new_dir']))
  32. {
  33. $max_rozmiar = 1024*1024;
  34. if (isset($_FILES['plik']) && is_uploaded_file($_FILES['plik']['tmp_name'])) {
  35.     if ($_FILES['plik']['size'] > $max_rozmiar) {
  36.         echo 'Błąd! Plik jest za duży!';
  37.     } else {
  38.         echo '<br /><b>Przesłany plik:</b> '.$_FILES['plik']['name'];
  39.         echo '<br/>';
  40.         if (isset($_FILES['plik']['type'])) {
  41.             echo '<b>Typ:</b> '.$_FILES['plik']['type'].'<br/>';
  42.         }
  43.         if (isset($_FILES['plik']['size'])) {
  44.     $file_size=$_FILES['plik']['size']/1024;
  45.             echo "<b>Rozmiar:</b> ".number_format($file_size, 3)." KB<br/>";
  46.         }
  47.     if (isset($_POST['new_dir']))
  48.     {
  49.         move_uploaded_file($_FILES['plik']['tmp_name'],
  50.         $_SERVER['DOCUMENT_ROOT'].'/graphics/fotos/'.$_POST['new_dir'].'/'.$_FILES['plik']['name']);
  51.     }
  52.     }
  53. } else {
  54.    echo 'Błąd przy przesyłaniu danych!';
  55. }
  56. echo("<br />");
  57.  
  58.     mkdir_form();
  59. } else {
  60.     echo("
  61.             <input type=\"hidden\" name=\"action\" value=\"make_dir\" />
  62.             <input type=\"hidden\" name=\"folder\" value=\"$folder\" />
  63.             <b>$folder</b>
  64.             <br />
  65.             <input type=\"text\" name=\"new_dir\" size=\"10\" />
  66.             <input type=\"submit\" value=\"Utwórz katalog\" name=\"submit\" />
  67.         </form>
  68.     ");
  69. }
  70. ?>


To jest mój cały kod, który przesyła pliki na serwer i tworzy w nim katalogi, moze mi ktos pomoc i powiedziec dlaczego tworzone przez skrypt katalogi mają atrybuty 755 a nie 777 i jak to naprawic?
chomiczek
Zmienić prawa dostepu na 0777, jeśli nie możesz tego zrobić chmod() pozostaje Ci FTP i np. TotalCommander, a jesli nie masz dostępu do FTP poproś admina.
nez
Gib21: a co za różnica - dajmy na to, że użytkownik, na którym działa Apache (załóżmy, że to apache) nazywa się "apache", to jakkolwiek tworzysz te swoje katalogi, mając zarówno 777 jak i 755 będzie przecież mógł też do nich zapisywać.
Gib21
Zapisywac moze i moge, ale pozniej zaden sposob folderu nie moge usunąć. Ani poprzez totalcomandera ani ftpa ani nic. nie da sie i tyle. ale problem rozwiazalem, uzylem chmod().
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.