Czy można zezwolić, aby kontrola fileupload pokazywała tylko obrazy?Jak ograniczyć typ pliku w sterowaniu FileUpload?
Po kliknięciu przycisku Przeglądaj powinno być wyświetlane tylko obrazy.
Czy można zezwolić, aby kontrola fileupload pokazywała tylko obrazy?Jak ograniczyć typ pliku w sterowaniu FileUpload?
Po kliknięciu przycisku Przeglądaj powinno być wyświetlane tylko obrazy.
Nie, w sieci nie można po stronie klienta, widocznie od strony serwera można robić niesamowite rzeczy. Do tego rodzaju programów programiści zwykle używają Activex, flash lub tym podobnych.
Zakładając, że chodzi ci o przesyłanie wyłącznie zdjęć.
Można sprawdzić właściwość pliku ContentType
(tj. Obraz/gif).
Spójrz tutaj dla przykładu: http://www.15seconds.com/issue/061116.htm
nie prosi o sprawdzenie. – anishMarokey
zwykły <input type="file">
, obawiam się, że nie jest to możliwe na stronie klienta.
Jednak niektóre narzędzia do przesyłania innych firm, takie jak SWFUpload, zapewniają tę funkcję.
Nie znalazłem bezpośredniego rozwiązania tego problemu.
To mój obejście pomocą RegularExpressionValidator:
<asp:FileUpload ID="fuImportImage" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server"
ControlToValidate="fuImportImage"
ErrorMessage="Only JPEG images are allowed"
ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Jj][Pp][Ee][Gg])$)">
</asp:RegularExpressionValidator>
Nie można ściśle ograniczać typ pliku, ale jeśli przeglądarka obsługuje go można spowodować, że początkowo pokazać tylko pewien typ pliku:
<form method="post" action="blahblah.blah">
<input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>
//VALIDATE FILE EXTENTION
var _validFileFlag;
function fValidFileExt(vfilePath){
var vFileName=vfilePath.split('\\').pop();
var vFileExt=vfileName.split('.').pop();
if(vFileExt.toUpperCase()=="JPEG" || vFileExt.toUpperCase()=="JPG"){
_validFileFlag = true;
}
_validFileFlag = false;
}
<asp:FileUpload ID="FileUpload1" onchange="fValidFileExt(this.value);" runat="server" />
Sprawdź '_validFileFlag' podczas zapisywania danych/upload ..
W 2015 roku webbrowsers wspierać wejście zaakceptować atrybut, więc można to zrobić:
<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />
To powinna być zaakceptowana odpowiedź. – mbomb007
To nadal pozwoli użytkownikowi przesłać plik, który nie korzysta z żadnego z tych rozszerzeń. – jtate
@ jtate Pytanie jest ograniczone do * show * only images. Zawsze powinieneś potwierdzić przesłanie (i dowolne dane wejściowe użytkownika) po stronie serwera, aby złapać kogoś, kto próbuje załadować coś niepożądanego. Użytkownik może po prostu zmienić nazwę rozszerzenia niepożądanego pliku na coś z listy akceptowanych. Powinieneś więc podejść do listy akceptacji w przesłanym pliku jako prosta pomoc dla użytkownika i przynajmniej zweryfikować ją na zapleczu. –
Zastosowanie przyjmować atrybut, aby wyświetlić tylko obrazy w przeglądarce plików jak poniżej -
<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" />
z ASP .nets RegularExpressionValidator do sprawdzania poprawności wybranego typu pliku za pomocą komunikatu sprawdzania poprawności.
<asp:RegularExpressionValidator ID="RegExValFileUploadFileType" runat="server"
ControlToValidate="FileUploadFileType"
ErrorMessage="Only .jpg,.png,.jpeg,.gif Files are allowed" Font-Bold="True"
Font-Size="Medium"
ValidationExpression="(.*?)\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$"></asp:RegularExpressionValidator>
Co masz na myśli mówiąc: show? masz na myśli upload? –
@Amgdy - "show" = wyświetla tylko pliki określonego typu w rzeczywistej przeglądarce plików, która pojawia się po kliknięciu przycisku "przeglądaj". – Jagd