Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] upload plików na serwer
Forum PHP.pl > Forum > Przedszkole
lutador
Witam,


mam prosty skrypt do uploadu pliku na serwer do katalogu upload. Katalog upload ma prawa 777 i jego wlascicielem jest admin. Czemu plik nie chce sie wyslac na serwer?

  1. <form enctype="multipart/form-data" action="test.php" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  3.  Plik do wyslania: <input name="userfile" type="file" />
  4.  <input type="submit" name="wyslij" value="Wyslij" />
  5. </form>
  6. <?
  7.  
  8. if(isset($_POST['wyslij'])){
  9.        if( is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
  10.            {
  11.              $strUploadDir = 'upload' . $_FILES['userfile']['name'];
  12.                  if( move_uploaded_file( $_FILES['userfile']['tmp_name'], $strUploadDir ) )
  13.                  {
  14.                echo 'Plik został pomyslnie uploadowany! <br />';
  15.                  }
  16.                  else
  17.                  {
  18.                echo 'Upload pliku nie powiodl sie!';
  19.                  }
  20.      echo 'Dodatkowe informacje o uploadowanym pliku: <pre>' . print_r( $_FILES, true ) . '</pre>';
  21.            }
  22.        else
  23.        {
  24.      echo 'Wystapil blad podczas wysylania pliku na serwer!';
  25.        }
  26. }
  27. ?>
piotrooo89
daj sobie print_r($_FILES) i powiedz czy masz jakieś errory.
lutador
print_r($_FILES) -> Array ( [userfile] => Array ( [name] => eu.txt [type] => text/plain [tmp_name] => /tmp/phpIVt0FH [error] => 0 [size] => 281 ) )
piotrooo89
czy tu:
  1. <?php
  2. $strUploadDir = 'upload' . $_FILES['userfile']['name'];
  3. ?>

nie powinno być:
  1. <?php
  2. $strUploadDir = 'upload/' . $_FILES['userfile']['name'];
  3. ?>
lutador
powinno być.

  1. <?php
  2. $strUploadDir = '/upload/' . $_FILES['userfile']['name'];
  3. ?>
piotrooo89
o to już od specyfikacji ścieżki zależy.
krzysiekk
witam czy ten kod nie działa na serwerze czy localchoscie?
  1. <form enctype="multipart/form-data" action="" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  3. Plik do wyslania: <input name="userfile" type="file" />
  4. <input type="submit" name="wyslij" value="Wyslij" />
  5. </form>
  6. <?
  7. print_r($_FILES);
  8. if(isset($_POST['wyslij'])){
  9.       if( is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
  10.           {
  11.             $strUploadDir = 'upload/' . $_FILES['userfile']['name'];
  12.                 if( move_uploaded_file( $_FILES['userfile']['tmp_name'], $strUploadDir ) )
  13.                 {
  14.               echo 'Plik został pomyslnie uploadowany! <br />';
  15.                 }
  16.                 else
  17.                 {
  18.               echo 'Upload pliku nie powiodl sie!';
  19.                 }
  20.     echo 'Dodatkowe informacje o uploadowanym pliku: <pre>' . print_r( $_FILES, true ) . '</pre>';
  21.           }
  22.       else
  23.       {
  24.     echo 'Wystapil blad podczas wysylania pliku na serwer!';
  25.       }
  26. }
  27. ?>

ten kod dziala na localhoscie
perhydrol
Jeśli można to i ja się podepnę pod temat, ponieważ mam problem z upload-em plików na serwer

mianowicie na 15 plików o rozszerzeniu "*.jpg" około 8 udaje mi się upload-ować natomiast pozostałe NIE :/
próbowałem nawet edytować je w celu ponownego zapisu w PHOTOSHOPIE i nadal to samo :/

wynik print_r($_FILE)
  1. <?php
  2. (
  3.    [plik] => Array
  4.        (
  5.            [name] => przykladowe.jpg
  6.            [type] =>
  7.            [tmp_name] =>
  8.            [error] => 2
  9.            [size] => 0
  10.        )
  11.  
  12. )
  13. ?>
krzysiekk
witam tzn. wogole nie wysyła tych plików czy to sa zawsze te same pliki ? ktorych sie nie udaje wyłac?
jakie maja nazwy.
piotrooo89
zobacz co oznacza error 2 i będziesz wiedział wszystko: http://www.php.net/manual/pl/features.file-upload.errors.php
perhydrol
  1. <form enctype="multipart/form-data" action="index.php" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
  3. <input type="file" name="plik" />
  4. <input type="hidden" name="type" value="img" />
  5. <input type="hidden" name="dir" value="img_file" />
  6. <input type="hidden" name="action" value="upload_file" />
  7. <input type="submit" value="Wyślij" />
  8. </form>


  1. <?php
  2. $file_tmp         = $_FILES['plik']['tmp_name'];
  3.    $file_name     = $_FILES['plik']['name'];
  4.    $ext             = strtolower(end(explode(".", basename($file_name))));
  5.    $rand_name     = md5(time());
  6.    $rand_name     = rand(0,999999999);
  7.    $file_name_     = $rand_name.'.'.$ext;
  8.    $file_size        = $_FILES['plik']['size'];
  9.    
  10.        if($ext=="jpeg" || $ext=="jpg" || $ext=="gif" || $ext=="png")
  11.            {
  12.                if(is_uploaded_file($plik_tmp))
  13.                    {
  14.                        move_uploaded_file($file_tmp, $dir."/_".$plik_name_);
  15.                                         }
  16.                        }
  17.             .......
  18.             ....
  19. ?>


Wysyłane pliki to:

Cytat
p_1.jpg (rozmiar: 47,9KB)
p_2.jpg (rozmiar: 87,8KB)
p_3.jpg (rozmiar: 18,9KB)
.....
p_15.jpg (rozmiar:14,8KB)


I teraz z tych 15-tu plików około 8-iu mogę pomyślnie upload-ować natomiast pozostałych 7-em z 15-tu już NIE.
(na czerwono plik którego nie moge UPL...)

wynik "print_r($_FILE)":
Cytat
alue: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.


W trakcie pisania tego postu zorientowałem się że chyba jednak źle sobie przeliczyłem jednostki
KiloBajt na Bajty
-uroki robienia czegoś późną nocą

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.