web-dev-qa-db-ja.com

FileUploadコントロールでファイルの種類を制限する方法

Fileuploadコントロールで画像のみを表示できるようにすることは可能ですか?

[参照]ボタンをクリックすると、画像のみが表示されます。

25
Geeth

いいえ、ウェブではクライアント側からはできません。明らかにサーバー側からは驚くべきことができます。この種のことのために、プログラマは通常Activexやフラッシュなどを使用します。

6
netadictos

2015年、Webブラウザーはinput accept属性をサポートするため、これを行うことができます。

<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />

ただし、Visual Studioでは、FileUpload ASPツールの無効な属性として、これに関するメッセージが表示される場合があります。

51
Tonko Boekhoud

この問題の直接的な解決策は見つかりませんでした。

これは、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>
22

restrictファイルタイプを厳密に指定することはできませんが、ブラウザがサポートしている場合は、特定のタイプのファイルのみを最初に表示できます。

<form method="post" action="blahblah.blah">
  <input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>
13
iconoclast
//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"  />

データ/アップロードの保存中に「_validFileFlag」を確認してください。

3
Somnath R

画像のみをアップロードすることを意味すると仮定します。

ファイル(つまり、image/gif)のContentTypeプロパティを確認できます。

例についてはこちらをご覧ください: http://www.15seconds.com/issue/061116.htm

2
David Neale

プレーン<input type="file">、私はそれがクライアント側で可能ではないことを恐れています。

ただし、 SWFUpload などの一部のサードパーティアップローダーがこの機能を提供します。

1
Gant

Accept属性を使用して、以下のようにファイルブラウザに画像のみを表示します-

<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" />

asp.nets RegularExpressionValidatorを使用して、選択したファイルタイプを検証メッセージで検証します。

<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>
1