如何在使用AjaxFileUpload时限制文件大小,以及如何使用客户端javascript将其传达给用户



我们有一个带有AjaxFileUpload扩展程序的aspx页面,用于将一些图像文件异步上传到服务器。

<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" 
                    OnUploadComplete="UploadComplete"  
                    OnClientUploadComplete="UploadCompleteClient" /

>

我们必须将上传文件的文件大小限制在一定范围内。为此,我们目前在服务器端使用以下代码作为

protected void UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        if (e.FileSize <= fileSizeLimit)
        {
            AjaxFileUpload1.SaveAs(filePath);
        }
    }

在客户端作为

function UploadCompleteClient(sender, args) {
        if (parseInt(args._fileSize) > fileSizeLimit) {
            alert("file exceeds file size limit");
        }

现在,当文件超过"fileSizeLimit"时,不会在服务器上保存文件。客户端警报向用户显示超出了文件大小。但现在的问题是AjaxFileUpload扩展程序状态消息显示所有文件都已成功上载。

我们是否可以显示警报错误消息并显示正确的AjaxFileUpload扩展器状态消息

提前感谢

您可以在客户端使用UploadCompleteClient来检查是否超过了文件大小,然后显示错误消息。以下是对此的js

<script type="text/javascript">
function UploadCompleteClient(sender, args) {
  var filesize = args.get_fileSize();
  var fileId = args.get_fileId();

  var status = document.getElementById('AjaxFileUpload1_FileItemStatus_' + fileId);
  if (parseInt(filesize) > fileSizeLimit) {
    alert("file exceeds file size limit");
    if (status.innerText) {
      status.innerText = " file exceeds file size limit ";
    }
    if (status.textContent) {
      status.textContent = " file exceeds file size limit ";
    }
  }
}
</script>

最新更新