2011-08-13 10 views
8

Jak wyświetlić tylko pliki XML w elemencie wejściowym pliku? Przeczytałem o atrybucie "accept", ale nauczyłem się, że żadna przeglądarka go nie obsługuje. Znalazłem tu kilka skryptów JS, ale nie działa dobrze: - \Wyświetlanie tylko plików XML w elementach wejściowych pliku HTML

(jestem Zaznaczenie tej stronie serwera, jak dobrze, ale chciałbym zrobić to po stronie klienta zbyt)

Dzięki

+0

Sprawdź odpowiedzi na ten drugi SO pytanie [http://stackoverflow.com/questions/1978134/how-to-restrict-file-types-with-html-input-file-type/1978160#1978160][1] [ 1]: http://stackoverflow.com/questions/1978134/how-to-restrict-file-types- z-html-input-file-type/1978160 # 1978160 –

Odpowiedz

-1

Not pewien, czy możesz to zrobić, ale przynajmniej możesz użyć funkcji wywołania zwrotnego i sprawdzić wartość wejściową dla rozszerzenia .xml.

Snippet:

<script type="text/javascript"> 
    function isXml(input) 
    { 
     var value = input.value; 
     var res = value.substr(value.lastIndexOf('.')) == '.xml'; 
      if (!res) { 
       input.value = ""; 
      } 
     return res; 
    } 
</script> 

<form method="post" action=""> 
    <input type="file" name="myfile" id="myfile" onchange="return isXml(this)" /> 
    <input type="submit" /> 
</form> 
+0

tak, wiem, że mogę to zrobić podczas przesyłania, ale wolę to robić, gdy użytkownik przegląda plik. Widziałem, że witryny do przesyłania zdjęć ograniczają się tylko do obrazów, ale używają one lampy błyskowej, aby to osiągnąć, i nie chcę używać flash: - \ – Shai

+0

Hm, jeśli chcesz dać użytkownikowi natychmiastową odpowiedź, gdy wybierze plik możesz być poza wyglądem po prostu html/js, ale przynajmniej możesz dać jakąś informację zwrotną, gdy użytkownik wybierze plik. Zaktualizowałem swoją odpowiedź za pomocą urywka do demonstracji. Tutaj po prostu ustawiam wartość pola na pustą, jeśli wybrany zostanie plik o niewłaściwym rozszerzeniu. Prawdopodobnie możesz zastosować więcej efektów wizualnych, aby wskazać błąd. – kjetilh