-1

我有一个文件上传控件,我希望该文件仅在低于某个内存限制 (8 Mb) 时才附加。我使用 Ajax 获取文件大小并在 onchange 事件中调用它。但我无法限制文件的附件。谁能帮我 ?

这是示例代码

function a(obj) {
    if ($(obj).val() != '') {
        var request;
        var flag = false;
        request = $.ajax({
            type: "POST",
            url: 'CheckFileSize.aspx',
            data: "search=" + $(obj).val(),
            success: function (size) {
                if (parseFloat(size) < 8192) {
                    flag = true;
                }
                if (!flag) {
                    alert('File size is greater then 8 MB. The size of the file is ' + (parseFloat(size)) / 1024 + ' MB');

//做一些限制用户上传的事情在这里输入代码 $(obj).val(null); } 返回标志;} }); } 返回假;}

4

2 回答 2

1

在处理上传文件的服务器端方法中,添加以下代码:

        if (myFileUploadControl.HasFile)
        {
                int maxSize = Convert.ToInt32(ConfigurationManager.AppSettings.Get("MaxImageSize"));     //MaxImageSize specified in web.config file to make it easy to change.

                int imageSize = myFileUploadControl.PostedFile.ContentLength;
                if (imageSize > maxSize)
                {
                    string uploadImageError = "The selected file exceeds the maximum allowed size (" + maxSize / 1000 + "k)";  // Message to display to user.
                }
                else
                {
// Code to process the file here.
                }
        }

将以下内容添加到 web.config 文件的 system.web 部分也将防止接受过大的上传。

<!-- set max upload to 25 MB -->
<httpRuntime executionTimeout="300" maxRequestLength="25000"/>
于 2012-09-20T10:38:45.063 回答
0

您应该能够清除输入的值 - 在 jQuery 中它看起来像

$('#fileInputId').val('')

于 2012-09-20T10:31:15.597 回答