Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Mateusz Bogolubow, ostatnia modyfikacja: 2007-02-23
Upload plików za pomocą PHP jest dość prostą operacją, ale potrafi sprawić dużo kłopotów początkującym programistą. Spróbuję w jasny sposób przedstawić to zagadnienie.
Stwórzmy plik form.php, gdzie będzie się znajdował nasz formularz przez który będą wysyłane pliki na serwer.
[...] <form enctype="multipart/form-data" action="upload.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> /* maksymalna wielkość pliku w bajtach */ Plik do wysłania: <input name="userfile" type="file" /> <input type="submit" value="Wyślij" /> </form> [...]
Atrybut action odpowiada za lokalizację pliku do którego mają zostać wysłane dane na temat pliku. W naszym przypadku jest to plik w tym samym folderze - upload.php, do którego wprowadzamy kod:
<?php $location = 'c:/usr/krasnal/www/upload/' . basename($_FILES['userfile']['name']); if (move_uploaded_file($_FILES['userfile']['tmp_name'], $location)) { echo "Plik został załadowany poprawnie..."; } else { echo "Plik nie został załadowany..."; } ?>
Funckja move_uploaded_file(), przenosi plik z jednej lokalizacji ($_FILES['userfile']['tmp_name']) do drugiej ($adres) sprawdzając przy tym czy przenoszony plik został upload'owany przez formularz. W przeciwnym wypadku zwraca false.
Może teraz trochę na temat zmiennych $_FILES, jak można się domyśleć dotyczą one upload-owanych plików i tak:
Przystańmy na chwilę przy zmiennej $location, zawiera ona adres do którego ma zostać przeniesiony plik oraz jego nazwę. W naszym przypadku nazwa pliku jest pobierana ze zmiennej $_FILES['userfile'][ name'], przy pomocy funkcji basename(), która 'ucina' adres pliku i pozostawia samą nazwę. Bardzo często w tym miejscu jest popełniany błąd podczas ustalania lokalizacji dla pliku. Warto skorzystać z funkcji $_SERVER['SCRIPT_FILENAME'], która poinformuje o aktualnej lokalizacji skryptu i wprowadzić do zmiennej adres bezwzględny.
Na koniec chcę wspomnieć o częstym przeoczeniu ustalenia praw dostępu dla folderu do którego dopisuje się pliki - chmod, który ma mieć wartość 777.
Mateusz Bogolubow
szukaj: upload upload plików wgrywanie plików na serwer PHP
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org