Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] upload plików
Forum PHP.pl > Forum > Przedszkole
swider8814
Witam,
Mam bardzo prosty skrypt do uploadu plików. Służy on do wysyłania pliku csv. Zawartość pliku csv można później wyszukiwać za pomocą wyszukiwarki na stronie.
Jak mogę dodać do tego aby przyjmował tylko plik o danej nazwie (np. plik.csv), a jeżeli ktoś próbuje wysłać plik o innej nazwie, to wyświetla się błąd?
Z góry bardzo dziękuję za pomoc.

  1. <?php
  2. if (!empty($_FILES["file"]))
  3. {
  4. if ($_FILES["file"]["error"] > 0)
  5. {echo "<div class='alert error'><span><strong>Nie wybrano pliku lub plik jest za duży!</strong></span>";
  6. echo "<p>Bląd: " . $_FILES["file"]["error"] . "</p></div>";}
  7. else
  8. {echo "<div class='alert success'><span><strong>Plik został pomyślnie dodany!</strong></span>";
  9. echo "<p>Dodany plik: ".$_FILES["file"]["name"]."<br/>Rozmiar: ".($_FILES["file"]["size"]/1024)." kB</p></div>";
  10. move_uploaded_file($_FILES["file"]["tmp_name"],'../csv/'.$_FILES["file"]["name"]);}
  11. }
  12. ?>
  13.  
  14. <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  15. <p>
  16. <label>Wybierz plik: <span title="Pole wymagane">*</span></label>
  17. <input name="file" type="file" />
  18. </p>
  19. <p>
  20. <button type="submit" name="submit" class="button orange">Wyślij</button>
  21. </p>
  22. </form>
Turson
$_FILES["file"]["name"] tu masz nazwę pliku, więc co za problem sprawdzić czy równa jest plik
swider8814
Problemem jest właśnie to, że nie znam PHP (jedynie HTML i CSS), a potrzebuję delikatnie zmodyfikować ten skrypt. Jaka funkcja jest odpowiedzialna za to w PHP? Z manualem PHP myślę, że sobie poradzę jakoś tylko nie wiem właśnie nawet czego szukać za bardzo.
Turson
  1. if($_FILES["file"]["name"] ==="plik"){
  2. //dobrze
  3. }
  4. else
  5. //źle
ZaXaZ
Cytat(swider8814 @ 4.04.2014, 17:43:27 ) *
Problemem jest właśnie to, że nie znam PHP (jedynie HTML i CSS), a potrzebuję delikatnie zmodyfikować ten skrypt. Jaka funkcja jest odpowiedzialna za to w PHP? Z manualem PHP myślę, że sobie poradzę jakoś tylko nie wiem właśnie nawet czego szukać za bardzo.


  1. $plik=$_FILES['file']['name'];
  2. if ($plik!='plik.csv') die('Błędna nazwa pliku.');
  3. if (pathinfo($plik, PATHINFO_EXTENSION)!= 'csv') die('Złe rozszerzenie pliku!!!, można tylko csv!!');


a

  1. <?php echo $_SERVER['PHP_SELF']; ?>


zamien na:

  1. <?php echo htmlentities($_SERVER['PHP_SELF']); ?>
Nie jestem pewien jak to było jak się wysyła dane postem, chyba bezpiecznie ale lepiej wrazie czego się zabezpieczyć przed cross-site scripting (xss).
swider8814
Dziękuję bardzo @ZaXaZ
Wszystko działa smile.gif
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.