如何过滤FileUpload Control?

时间:2011-06-02 14:58:32

标签: .net asp.net regex file-upload

如何在asp.net中向fileupload控件添加过滤器?我想要一个Oasis File(.000)的过滤器。?

请建议我...非常感谢你!

3 个答案:

答案 0 :(得分:5)

您可以使用RegularExpressionValidator

<asp:RegularExpressionValidator ID="rexp" runat="server" ControlToValidate="fupProduct"
     ErrorMessage="Only .gif, .jpg, .png, .tiff and .jpeg" 
     ValidationExpression="(.*\.([Gg][Ii][Ff])|.*\.([Jj][Pp][Gg])|.*\.([Bb][Mm][Pp])|.*\.([pP][nN][gG])|.*\.([tT][iI][iI][fF])$)"></asp:RegularExpressionValidator>

答案 1 :(得分:4)

控件上没有属性。我认为最简单的方法是通过javascript验证所选文件。例如

JS功能:

function checkFileExtension(elem) {
        var filePath = elem.value;

        if(filePath.indexOf('.') == -1)
            return false;

        var validExtensions = new Array();
        var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();

        validExtensions[0] = 'jpg';
        validExtensions[1] = 'jpeg';
        validExtensions[2] = 'bmp';
        validExtensions[3] = 'png';
        validExtensions[4] = 'gif';  
        validExtensions[5] = 'tif';  
        validExtensions[6] = 'tiff';
        validExtensions[7] = 'txt';
        validExtensions[8] = 'doc';
        validExtensions[9] = 'xls';
        validExtensions[10] = 'pdf';

        for(var i = 0; i < validExtensions.length; i++) {
            if(ext == validExtensions[i])
                return true;
        }

        alert('The file extension ' + ext.toUpperCase() + ' is not allowed!');
        return false;
    }

在page_load中连接它:

FileUpload1.Attributes.Add("onchange", "return checkFileExtension(this);")

注意:此代码从此处逐字复制:http://forums.asp.net/t/1156963.aspx/1?How+to+filter+files+in+file+upload+HTML+control。我没有写它,我没有测试过它!

答案 2 :(得分:2)

您可以使用javascript在服务器端过滤它..

试试这个here