Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] upload plików
swider8814
post 4.04.2014, 16:24:01
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.03.2004

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
Turson
post 4.04.2014, 16:28:11
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


$_FILES["file"]["name"] tu masz nazwę pliku, więc co za problem sprawdzić czy równa jest plik
Go to the top of the page
+Quote Post
swider8814
post 4.04.2014, 16:43:27
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.03.2004

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Turson
post 4.04.2014, 17:13:03
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


  1. if($_FILES["file"]["name"] ==="plik"){
  2. //dobrze
  3. }
  4. else
  5. //źle
Go to the top of the page
+Quote Post
ZaXaZ
post 4.04.2014, 17:18:11
Post #5





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


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).

Ten post edytował ZaXaZ 4.04.2014, 17:29:36


--------------------
Go to the top of the page
+Quote Post
swider8814
post 7.04.2014, 08:31:56
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.03.2004

Ostrzeżenie: (0%)
-----


Dziękuję bardzo @ZaXaZ
Wszystko działa smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 09:58