Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] formularz + załączanie pliku do wysłania, ograniczenie załączania do plików tylko z określonym rozszerzeniem
mpps
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


Witam,
nie mogę sobie poradzić ze skryptem JS.
Jego zadaniem jest umożliwianie załączania do formularza plików tylko z określonym rozszerzeniem.
Problem polega na tym, że skrypt w IE działa, natomiast w Operze i Firefoksie nie...
Sprawdzanie odbywa się przy kliknięciu buttona type="submit".

Kod
extArray = new Array(".doc", ".pdf"); // TABLICA Z ROZSZERZENIAMI PLIKOW KTORE MAJA BYC AKCEPTOWANE DO WYSLANIA
allowSubmit = false;
if(!file) return;
while(file.indexOf("\\") != -1){
    file = file.slice(file.indexOf("\\") + 1);
    ext = file.slice(file.indexOf(".")).toLowerCase();
    for(var i = 0; i < extArray.length; i++){
        if(extArray[i] == ext){
            allowSubmit = true; break;
            return true; break;
        }
    }
}
if(allowSubmit == true){
    praca.submit();
}
else{
    alert("Prosimy wysyłać tylko pliki typu: "
    + (extArray.join(" ")) + "\n(Microsoft Word, Adobe Reader)."
    + "\nProszę wybrać nowy plik i wysłać ponownie.");
    allowSubmit = false;
    return false;
}


Problem objawia się w taki sposób, że jeśli załączę plik z rozszerzeniem innym niż *.doc lub *.pdf, to wyskakuje alert.
Niestety, w Operze i Firefoksie nawet po załączeniu plików z *.doc lub *.pdf wyskakuje ten alert...

Sprawdźcie proszę, gdzie tkwi błąd, bo ja swoje możliwości i znajomość JS już wyczerpałem...


Pozdrawiam

Ten post edytował mpps 18.03.2009, 12:48:28
Go to the top of the page
+Quote Post
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


nie lepiej zrobić to po stronie php? bo i tak bedziesz musiał to zrobić po stronie php (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
mpps
post
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


Cytat(melkorm @ 18.03.2009, 12:54:44 ) *
nie lepiej zrobić to po stronie php? bo i tak bedziesz musiał to zrobić po stronie php (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

czemu 'będę musiał'?
na razie chciałbym to rozwiązać w JS.
później będzie czas na zmiany (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
melkorm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


bo ktoś mądry spreparuje timplejtke I Tobie wysle co tylko będzie mu się podobać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mpps
post
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


no tak ale php działa po stronie serwera, a ja bym chciał to sprawdzić, zanim zostanie wysłane (czyli w trakcie, a nie po przesłaniu na serwer).
Go to the top of the page
+Quote Post
zelu
post
Post #6





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


  1. plik.lastIndexOf(".gif")<0


A do tego i tak zrob walidacje w php (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdro
Go to the top of the page
+Quote Post
mpps
post
Post #7





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


no więc tak...

problem tkwi w skrypcie w linii:
  1. while(file.indexOf("\\") != -1){

...próbowałem:
  1. while(file.indexOf("") != -1){

...i
  1. while(file.indexOf("\") != -1){

...i
  1. while(file.indexOf("\\\") != -1){

...i
  1. while(file.indexOf("/") != -1){

...i
  1. while(file.indexOf("//") != -1){

...i nic, tzn. generalnie błędy.

tak więc + dla @melkorm, bo zmusił do przerobienia skryptu na php (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
i o JS trzeba będzie chyba już w ogóle zapomnieć, bo ktoś sobie wyłączy obsługę w przeglądarce i lipa będzie
i + dla @zelu, bo napisał coś (IMG:http://forum.php.pl/style_emoticons/default/czarodziej.gif)
Go to the top of the page
+Quote Post
zelu
post
Post #8





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Cytat(mpps @ 19.03.2009, 01:50:58 ) *
i o JS trzeba będzie chyba już w ogóle zapomnieć, bo ktoś sobie wyłączy obsługę w przeglądarce i lipa będzie



Walidacja przez JS jest spoko, bo mozesz bez przeladowania strony pokazac uzytkownikowi co wpisal zle... Po prostu trwa to szybciej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ale tak jak napisales ktos moze wylaczyc sobie JS, wiec wlasnie dlatego powinna byc druga walidacja w php :] Tak dla pewnosci (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Pozdro
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.09.2025 - 05:48