Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]walidacja przesyłanego pliku
Forum PHP.pl > Forum > Przedszkole
lkjhgf345
Witam
Mój prosty formularz ma wrzucać serwer pliki. Chcę aby sytuacja w której jeśli ktoś nie doda pliku lub doda plik z nazwą która już istnieje wyrzucał błąd. Kod działa ale niestety w tylko w drugim przypadku. W pierwszym przypadku czy coś dodam czy nie za każdym razem dostaję informację że nie wybrano pliku.
Formularz:
  1. <form method="post" name="skan" action="rachunki.php" enctype="multipart/form-data">
  2. <table border="0">
  3. <tr>
  4. <th colspan="2">Rachunek</th>
  5. </tr>
  6. </thead>
  7. <tbody>
  8. <tr>
  9. <td>Skan rachunku:</td>
  10. <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" name="dodaj" value="Dodaj">
  11. </td>
  12.  
  13. </tr>
  14. </tbody>
  15. </table>
  16. </form>

Kod obsługi:
  1. <?php
  2.  
  3. if(isset($_POST['dodaj'])){
  4.  
  5. $idd = $_SESSION['idd'];
  6.  
  7. $target_dir = "C:/pliki/rachunki/";
  8. $ch_dir = false;
  9. $target_file = $target_dir . basename($_FILES["fileToUpload"]["tmp_name"]);
  10. $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  11.  
  12. $check_dir = "SELECT * FROM rachunki WHERE nazwa LIKE '$target_file'";
  13.  
  14. if(isset($_FILES["fileToUpload"]['name'])){
  15. echo "<script type=\"text/javascript\">"."alert('Nie wybrano żadnego pliku!');"."</script>";
  16. $checkk = true;
  17. }else {
  18. $wynik_dir=@$polaczenie->query($check_dir);
  19. $rows2=$wynik_dir->num_rows;
  20. if($rows2>0){
  21. $ch_dir = true;
  22. }
  23.  
  24. if ($ch_dir == true){
  25. echo "<script type=\"text/javascript\">"."alert('Plik o podanej nazwie już istnieje!');"."</script>";
  26.  
  27. }else{
  28.  
  29. if ($_FILES["fileToUpload"]["size"] > 15000000) {
  30. echo "plik jest za duży <br>";
  31. $uploadOk = 0;
  32. }
  33. if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
  34.  
  35. } else {
  36. echo "błąd";
  37. }
  38.  
  39. if((isset($_FILES['fileToUpload']))&&($check == false))
  40. {
  41. $query = "INSERT INTO rachunki (`nazwa`, `id_rachunku`) VALUES ('$target_file', '$idd');";
  42.  
  43. $result = $polaczenie->query($query);
  44.  
  45. if($result) {
  46.  
  47. }
  48.  
  49. else {
  50. echo 'Błąd przy dodawaniu pliku <br>'
  51. . "<pre>{$polaczenie->error}</pre>";
  52. }
  53. } else
  54. {
  55. echo "błąd <br>";
  56. }
  57. }}}
  58. }

Jeśli wywalę tego if który sprawdza czy został dodany jakiś plik to kod wykonuje się dalej ale (sprawdza czy plik taki istnieje i ewentualnie go dodaje) lepiej wygląda kiedy wywala informację czy ktoś dodał plik czy nie.
nospor
nie
if(isset($_FILES["fileToUpload"]['name'])){
a:
if(!empty($_FILES["fileToUpload"]['name'])){
lkjhgf345
Dzięki za odpowiedź.
Po zmianie jeśli nie dodam żadnego pliku dostaję komunikat taki plik już istnieje a jeżeli dodam to otrzymuję informację że żaden plik nie został wybrany.
nospor
sorki, mialo byc
if(empty($_FILES["fileToUpload"]['name'])){
lkjhgf345
Dzięki i #Pomógł
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.