使用Html.Telerik()验证。使用MVC3上传()

时间:2012-05-24 18:30:11

标签: asp.net-mvc-3 telerik

我正在寻找示例代码,该代码将展示如何在Html.Telerik().Upload()函数上设置验证,以便用户只能上传.jpg个文件。我只想支持.jpg个文件。

有没有人有我可以使用的好例子或网站?

2 个答案:

答案 0 :(得分:0)

不幸的是,由于浏览器实现<input type="file" />的方式,使用 Html.Telerik()。Upload()无法过滤扩展程序。

来源: http://www.telerik.com/community/forums/aspnet-ajax/upload/how-to-filter-out-unwanted-file-types-radupload.aspx

但是,有一种替代方法可以使用html和javascript:

HTML

<input name="fileToUpload" type="file" onchange="check_file()" >

javascript

function check_file(){
            str=document.getElementById('fileToUpload').value.toUpperCase();
    suffix=".JPG";
    suffix2=".JPEG";
    if(!(str.indexOf(suffix, str.length - suffix.length) !== -1||
                   str.indexOf(suffix2, str.length - suffix2.length) !== -1)){
    alert('File type not allowed,\nAllowed file: *.jpg,*.jpeg');
        document.getElementById('fileToUpload').value='';
    }
}

来源:https://stackoverflow.com/a/6788623/1304064

答案 1 :(得分:0)

请参阅以下代码。此代码仅接受jpeg / jpg,png格式图像。图像大小也限制在100KB。

@(Html.Telerik().Upload()
        .Name("EmployeeImageUpload")
        .Multiple(false)
        .Async(async => async
        .Save("SaveEmployeeImage", "Employee")
        .AutoUpload(false)
        )
        .ClientEvents(events => events
        .OnLoad("onLoad")
        .OnSelect("onSelect")
        .OnSuccess("onSuccess")
        )
    )


<script type="text/javascript">

    function onLoad(e) {
        $(this).find("input").attr("accept", "image\/jpeg,image\/jpg,image\/png");
    }

    function onSelect(e) {

        if (e.files[0].size > 102400) {
            alert('Image Size Should Be <= 100KB');
            e.preventDefault();
            return false;
        }            

        var ext =e.files[0].extension.toLowerCase();
        if ($.inArray(ext, ['.jpeg', '.jpg', '.png']) == -1) {
            alert('Only Supported Extension are jpeg/jpg, png');
            e.preventDefault();
            return false;
        }
        return true;
    }
</script>