kbvishnu, być może mógłbyś ponownie rozważyć odpowiedź, którą zaakceptowałeś tak dawno temu. Nie musisz akceptować innej odpowiedzi. Po prostu sugeruję, w oparciu o liczbę flag, które otrzymaliśmy na odpowiedź i jej poziom głosów w porównaniu z innymi odpowiedziami, że może powinieneś przynajmniej rozważyć jej odrzucenie.
Pamiętaj, że daje to jedynie podpowiedź dla przeglądarki, jakie typy plików mają być wyświetlane użytkownikowi, ale można to łatwo obejść, dlatego zawsze powinieneś sprawdzać poprawność przesłanego pliku również na serwerze.
Powinien działać w IE 10+, Chrome, Firefox, Safari 6+, Opera 15+, ale obsługa jest bardzo pobieżna na telefony komórkowe (od 2015 r.), A według niektórych raportów może to w rzeczywistości uniemożliwić przesyłanie czegokolwiek przez niektóre przeglądarki mobilne, więc koniecznie przetestuj platformy docelowe.
To powinna być wybrana odpowiedź! Brakuje tylko notatki z informacją, że nadal musisz sprawdzić po stronie serwera (z powodu nieobsługiwanej przeglądarki, ale także ze względów bezpieczeństwa)
Prawdopodobnie zadziałało, gdy odpowiedź była odpowiedzią, ale po prostu spróbowałem i nie działało dla FF. Musiałem tylko dodać accept = ". Png, .jpg, .jpeg" Na przykład: jsfiddle.net/DiegoTc/qjsv8ay9/4
Kroki:
1. Dodaj atrybut accept do znacznika wejściowego
2. Sprawdź
poprawność za pomocą javascript 3. Dodaj weryfikację po stronie serwera, aby sprawdzić, czy zawartość jest rzeczywiście oczekiwanym typem pliku
Atrybut accept filtruje pliki, które będą wyświetlane w wyskakującym oknie wyboru plików. Nie jest to jednak sprawdzanie poprawności. To tylko wskazówka dla przeglądarki. Użytkownik może nadal zmieniać opcje w wyskakującym okienku.
Javascript sprawdza tylko rozszerzenie pliku, ale tak naprawdę nie może zweryfikować, czy wybrany plik to rzeczywisty plik jpg lub png.
Musisz napisać o sprawdzeniu zawartości pliku po stronie serwera.
Ale to nie jest dobry sposób. musisz kodować po stronie serwera, aby sprawdzić plik lub obraz.
Sprawdź, czy plik obrazu to rzeczywisty obraz czy fałszywy obraz
if(isset($_POST["submit"])){
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);if($check !==false){
echo "File is an image - ". $check["mime"].".";
$uploadOk =1;}else{
echo "File is not an image.";
$uploadOk =0;}}
Używając type = "file" i accept = "image / *" (lub żądanego formatu), pozwól użytkownikowi wybrać plik o określonym formacie. Ale musisz ponownie to sprawdzić po stronie klienta, ponieważ użytkownik może wybrać inny typ plików. To działa dla mnie.
processFile(imageInput){if(imageInput.files[0]){const file:File= imageInput.files[0];var pattern =/image-*/;if(!file.type.match(pattern)){
alert('Invalid format');return;}// here you can do whatever you want with your image. Now you are sure that it is an image}}
To najlepsza odpowiedź, ponieważ sprawdzi, czy plik jest rzeczywiście obrazem, nie wymagając od dewelopera określenia wszystkich różnych rozszerzeń, na które chcą zezwolić
Rozumiem twój pomysł. Jest to ważny składni JS: const file: File = imageInput.files[0];? Ponadto przypisanie id do danych wejściowych nie odbywa się w tradycyjny sposób.
W rzeczywistości to nie JS, to maszynopis. Kod blokowy został skopiowany z projektu Angular. Jeśli chcesz go użyć w pliku javascript, musisz pominąć definicję typu (: Plik)
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.