Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: chce postawić warunek
Forum PHP.pl > Forum > PHP
msmolo
witam che postawić warunek tem skryptowi że jak sie załauje plik formatu jpg bądź gif to wówczas wrzuci do folderu "zdjecia" a nie "pliki"

Jest to skrypt upload pliku

  1. <?php
  2. printf("<b>informacje o przesłanym pliku:</b><br><br>");
  3. printf("nazwa: %s <br>", $HTTP_POST_FILES["przeslany_plik"]["name"]);
  4. printf("rozmiar: %s <br>", $HTTP_POST_FILES["przeslany_plik"]["size"]);
  5. printf("typ: %s <br> <br>", $HTTP_POST_FILES["przeslany_plik"]["type"]);
  6. if (copy($HTTP_POST_FILES["przeslany_plik"]["tmp_name"],
  7.  "./pliki/".$HTTP_POST_FILES["przeslany_plik"]["name"])) 
  8.  
  9. { ?><html></font><br><br><img src="info.gif"></img></html><?php>
  10.  printf("<b><h1>plik przesłany pomyślnie</b></h1>");
  11.  
  12. } else { ?><html><br><br><img src="blad.gif"></img></html><?php>
  13.  printf("<b><h2>BَD: nie udało się przesłać pliku</b></h2>");
  14. }
  15. ?>


Prosze o pomoc
MalCom
Nie ten fragment wkleiles tongue.gif
Musisz znalezc fragment, wktorym plik jest przeboszony z temp do docelowego katalogu - funkcja move_uploaded_file()
i dorzucic prosty warunek.

Najprosciej tak, ale wtedy nazwa pliku nie moze zawierac znaku . winksmiley.jpg
  1. <?php
  2. $ext = explode('.', $_FILES['userfile']['name']);
  3. if($ext[1] == 'jpg' || $ext[1] == 'gif')
  4. $directory = './images';
  5. else
  6. $directory = './files';
  7. move_uploaded_file($_FILES['userfile']['tmp_name'], $directory.'/'.$_FILES['userfile']['name']);
  8. ?>


EDIT
Ups nie zauwazylem tego copy(), wiec tot en gfragment, mozesz zamienic copy() na move_upload_file() (funkcja przeznaczona specjalnie do tego) i wykorzystac powyzszy fragment kodu winksmiley.jpg
msmolo
wiec przerobilem ten skrypt tak i dziala świetnie!
ale chciałbym do niego dopisac jesscze warunek aby wyświetlał info ze plik został poprawnie przewsłany, a gdy nie to że nie został przesłany

  1. <?php
  2. printf("<b>Informacje o przesyłanym pliku</b><br><br>");
  3. printf("Nazwa: %s <br>", $HTTP_POST_FILES["przeslany_plik"]["name"]);
  4. printf("Nazwa tymaczasowa: %s <br>", $HTTP_POST_FILES["przeslany_plik"]["tmp_name"]);
  5. printf("Rozmiar: %s <br>", $HTTP_POST_FILES["przeslany_plik"]["size"]);
  6. printf("Typ: %s <br> <br>", $HTTP_POST_FILES["przeslany_plik"]["type"]);
  7.  
  8. $ext = explode('.', $HTTP_POST_FILES["przeslany_plik"]["name"]);
  9. if($ext[1] == 'jpg' || $ext[1] == 'gif' || $ext[1] == 'jpeg' || $ext[1] == 'psd')
  10. $directory = "./pliki/zdjecia";
  11. else
  12. $directory = "./pliki";
  13. move_uploaded_file($HTTP_POST_FILES["przeslany_plik"]["tmp_name"], $directory.'/'.$HTTP_POST_FILES["przeslany_plik"]["name"]);
  14.  
  15.  
  16. ?>
MalCom
Przeciez to proste i logiczne winksmiley.jpg
  1. <?php
  2. $ok = move_uploaded_file($HTTP_POST_FILES["przeslany_plik"]["tmp_name"], $directory.'/'.$HTTP_POST_FILES["przeslany_plik"]["name"]);
  3.  
  4. if ($ok)
  5. echo '<b><h1>plik przesłany pomyślnie</b></h1>';
  6. else
  7. echo '<b><h2>Błąd: nie udało się przesłać pliku</b></h2>';
  8. ?>


Staraj sie uzywac ' zamaist ", bo jest duzo wydajniejsze/szybsze, jesli nie wyswietlasz wartosci zmiennych w ciagu.
msmolo
a jeszcze mam problem z postawieniem warunku:

jeśli przesyłamy format pliku graficzny (jpg, jpeg, gif itd.) to wyświetli skrypt komunikat że "przesyłasz grafike", a jeśli inny format pliku że "wysyłasz plik"

bardzo proszę o odpowiedź
bne
  1. <?php
  2. if($ext[1] == 'jpg' || $ext[1] == 'gif' || $ext[1] == 'jpeg' || $ext[1] == 'psd')
  3. echo 'przesylasz zdjecie';
  4. else
  5. echo 'co innego niz zdjecie';
  6. ?>
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.