Strict Standards: Redefining already defined constructor for class wpdb in /blog/wp-includes/wp-db.php on line 49

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/cache.php on line 35

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /blog/wp-includes/cache.php on line 400

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el($output) in /blog/wp-includes/classes.php on line 534

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 553

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el($output) in /blog/wp-includes/classes.php on line 649

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el($output) in /blog/wp-includes/classes.php on line 674

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/query.php on line 15

Deprecated: Assigning the return value of new by reference is deprecated in /blog/wp-includes/theme.php on line 505

Strict Standards: Non-static method Advanced_Permalinks::get() should not be called statically in /blog/wp-content/plugins/advanced-permalinks/advanced-permalinks.php on line 825

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /blog/wp-includes/plugin.php on line 123

Warning: call_user_func_array() expects parameter 2 to be array, null given in /blog/wp-includes/plugin.php on line 123
[PHP] Jak wgrać na serwer wiele plików na raz? » Porady PHP » egrafik.pl
BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 18 | UU: 269

Strict Standards: Resource ID#250 used as offset, casting to integer (250) in /forum2/db/mysql4.php on line 223

Strict Standards: Resource ID#250 used as offset, casting to integer (250) in /forum2/db/mysql4.php on line 224
[PHP] Jak wgrać na serwer wiele plików na raz?
Porady PHP | 5 maj 2008 | Wizyt: 107929

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Deprecated: Function eregi() is deprecated in /blog/wp-content/plugins/tpbc.php on line 96

Za pomocą PHP, łatwo dodać do formy pole typu file dzięki czemu można wgrać jeden plik na serwer wraz z innymi danymi formy. Ale co jeżeli zachodzi potrzeba wgrania wielu plików na raz? (Podobna funkcjonalność jak w załącznikach w Gmail).

Można to osiągnąć w prosty sposób, za pomocą pętli for. Za chwilę zostanie przedstawiony kod do zrobienia tego!

Pierwszą rzeczą jaką musisz zrobić, to zapytać użytkownika jak wiele plików będzie on chciał wgrać. Liczba ta określi ile pól, potrzebnych do wgrania plik, zostanie przedstawionych. Metoda ta stworzy pola na kolejnej stronie, ale sugeruję żeby wykorzystać do tego DHTML dzięki czemu wybór ilości pól do przedstawienia spowoduje ich natychmiastowe utworzenie. Dla tego przykładu prostota jest kluczem, stąd dynamicznym tworzeniem pól zajmiemy się w innej poradzie.

Oto pierwszy krok, nazwijmy go "zapytaj.html".

Kod: html4strict

<html>
<head>
<title>Wybierz ilość plików do wgrania</title>
</head>
<body>
<form name="form1" method="post" action="pokarz.php">
  Ile plików chciałbyś wgrać? (Max = 9).
 
    <input name="ilePlikow" type="text" id=" ilePlikow " maxlength="1" />
 
 
    <input type="submit" name="Submit" value="Dalej" />
 
</form>
</body>
</html>

Zauważ – ustawiliśmy 9 jako maksymalną ilość plików do wgrania. Zabezpieczy to serwer przed nadmiernym obciążeniem. Oczywiście możesz kod zmodyfikować wedle własnych potrzeb.

Tutaj jest kod dla pliku "pokarz.php", który utworzy tyle pól potrzebnych do wgrania plików, ile określił użytkownik na poprzedniej stronie.

Kod: html4strict

<html>
<head>
<title>Wgraj pliki</title>
</head>
<body>
<form name="form1" enctype="multipart/form-data" method="post" action="zaladuj.php">
 
  <?
  $ilePlikow = $_POST["ilePlikow"];
  for($i=0; $i < $ilePlikow; $i++){
  ?>

    <input name="plik<? echo $i;?>" type="file" id="plik<? echo $i;?>" />
 
  <? } ?>
 <input name="ilePlikow" type="hidden" value="<? echo $ilePlikow;?>
" />
    <input type="submit" name="Submit" value="Dodaj" />
 
</form>
</body>
</html>

Nareszcie, poniżej jest kod umieszczony w pliku "zaladuj.php”, w którym pętla przechodzi przez wszystkie pola i przetwarza wgrane pliki;

Kod: php

<?
// gdzie zostanie umieszczony plik
$sciezka_docelowa = "wgranepliki/";
$ilePlikow = $_POST["ilePlikow"];
for($i = 0; $i < $ilePlikow; $i++){
    // pobranie nazwy pliku
    $nazwa_pliku = $_FILES["plik". $i]["name"];
$nazwa_pliku = stripslashes($nazwa_pliku);
    $nazwa_pliku = str_replace("’","",$nazwa_pliku);
    // kopiowanie pliku tymczasowego na serwerze do miejsca docelowego
    if (copy($_FILES["plik". $i]["tmp_name"], $sciezka_docelowa.$nazwa_pliku)) {
        echo "$nazwa_pliku | plik wgrany!<br>";
    } else {
        echo "$nazwa_pliku | nie można było wgrać pliku!<br>";
    }
}
?>

Ważne – kiedy użytkownik na drugiej stronie wybierze pliki do wgrania i kliknie przycisk "Dodaj", pliki zostaną skopiowane na serwer do folderu tymczasowego. Nazwy tych plików wraz ze ścieżką tego folderu zawarte są w zmiennej $_FILES["plik". $i]["tmp_name"], natomiast w zmiennej $_FILES["plik". $i]["name"] przechowywana jest oryginalna nazwa wgranego pliku.

Autor: Adam Tarkowski 

nowe Porady PHP » zobacz wszystkie

WordPress database error: [Incorrect file format 'wp_comments']
SELECT * FROM wp_comments WHERE comment_post_ID = '913' AND comment_approved = '1' ORDER BY comment_date desc

Dodaj komentarz









 
| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker