0

我有一个用于个人资料图片上传的 AJAX 文件上传器。我想限制用户仅上传最多 102400 字节的图像。文件大小超过时如何显示 javascript 错误消息。

代码:

protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
    string workerfile = Session["LoginUserID"].ToString();
            string strFileName = string.Empty;
            string strFileType = string.Empty;
            string path = string.Empty;
            var folder = Server.MapPath("../worker/Uploads/" + workerfile);
    if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
                strFileName = DateTime.Now.ToString("MM-dd-yyyy_HHmmss");
                strFileType = System.IO.Path.GetExtension(e.FileName).ToString().ToLower();

                AjaxFileUpload1.SaveAs(Server.MapPath("../worker/Uploads/" + Session["LoginUserID"] + "/" + workerfile + "_img" + strFileType));
            }
            else
            {

                strFileName = DateTime.Now.ToString("MM-dd-yyyy_HHmmss");
                strFileType = System.IO.Path.GetExtension(e.FileName).ToString().ToLower();


                AjaxFileUpload1.SaveAs(Server.MapPath("../worker/Uploads/" + Session["LoginUserID"] + "/" + workerfile + "_img" + strFileType));

            }
}

如何做任何想法?帮助赞赏。

4

1 回答 1

0

不幸的是,没有办法用服务器端出了什么问题的详细信息来响应客户端——也就是说,没有正式的方法可以这样做。这是一个替代方案:

  1. 使用 AjaxFileUploadEventArgs.FileSize 检查文件大小。如果它超过了你的最大值(看起来你可能试图限制为 1 MB,正确的值是 1048576),设置 AjaxFileUploadEventArgs.PostedUrl = "Your file is too big, etc."

  2. 将控件上的 OnClientUploadComplete 属性设置为 JS 函数的名称,如果文件名字符串的格式如此,该函数将显示图像,或者显示带有错误消息的窗口。

这当然是一个黑客,但它会工作。

于 2013-05-16T19:38:24.907 回答