使用正则表达式检查FileUpload是否为空

时间:2014-10-17 17:52:23

标签: c# asp.net regex

我想检查文件的类型是否正确以及文件是否已被选中。我不介意我不能把它放到一个表达式中。但两者都必须是真的,即文件类型正确,文件由FileUploadControl选择。

以下代码使用正则表达式检查工作扩展名:

<li class="three">
    <p>Bulk insert/upload inventory from file</p>
    <div>
        <asp:FileUpload ID="fileUploadControl" accept="csv" runat="server" />
        <asp:RegularExpressionValidator ID="regexValidator" runat="server" ValidationGroup="upload"
            ControlToValidate="fileUploadControl" 
            ErrorMessage="Only csv files are allowed" ForeColor="Red"
            ValidationExpression="(.*\.([Cc][Ss][Vv])$)">
        </asp:RegularExpressionValidator>
        <br />
        <asp:Button ID="buttonUploadToInventory" runat="server" Text="Upload" ValidationGroup="upload" OnClick="buttonUploadToInventory_Click" />
        <asp:Label ID="statusLabel" runat="server" Text="Upload status: Nothing uploaded"></asp:Label>
    </div>
 </li>

我想添加一个新子句来检查文件是否被选中,这样我就可以在同一个标​​签中显示错误。

1 个答案:

答案 0 :(得分:3)

为其添加RequiredFieldValidator。如果没有选择文件,RFV将触发,如果选择了文件,RegularExpressionValidator将会触发。

<asp:FileUpload ID="fileUploadControl" accept="csv" runat="server" />
            <asp:RegularExpressionValidator ID="regexValidator" runat="server" ValidationGroup="upload"
                 ControlToValidate="fileUploadControl" 
                 ErrorMessage="Only csv files are allowed" ForeColor="Red"
                 ValidationExpression="(.*\.([Cc][Ss][Vv])$)">
            </asp:RegularExpressionValidator>
            <asp:RequiredFieldValidator ID="requiredValidator" runat="server" ValidationGroup="upload"
                 ControlToValidate="fileUploadControl" 
                 ErrorMessage="Please select a file" ForeColor="Red">
            </asp:RegularExpressionValidator>