微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当多个用户同时上传到数据库时,AjaxFileUpload 临时数据保存到错误的帐户

如何解决当多个用户同时上传到数据库时,AjaxFileUpload 临时数据保存到错误的帐户

我在 IIS 服务器上的 ASP.Net 应用程序中使用 Ajax 文件上传控件(Ajax 控件工具包)。可能有几十个用户同时上传文件(相隔几秒钟)。根据 AjaxFileUpload documentation,这些文件临时存储在服务器上,并在调用 e.DeleteTemporaryData();删除。如果多个用户同时尝试上传文档,则会将随机文件存储在数据库中的错误帐户中。调用 delete 方法似乎没有帮助。这是一个错误吗?如何防止数据不匹配?每个帐户都有一个唯一的帐号,文件被插入到 sql 数据库中。

protected void DocumentA_UploadComplete(object sender,AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        try
        {

            //static fields
            if (!string.IsNullOrEmpty(appID))
            {
                applicationID = appID;
            }


            string ext = Path.GetExtension(e.FileName);


            if (contenttype != String.Empty)
            {
                byte[] bytes = e.GetContents();
                using (sqlCommand cmd = new sqlCommand("dbo.spUploadAttachments",ConnC.con))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new sqlParameter()
                    {
                        ParameterName = "@ApplicationID",Value = applicationID
                    });
                    cmd.Parameters.Add(new sqlParameter()
                    {
                        ParameterName = "@FileName",Value = e.FileName
                    });
                    cmd.Parameters.Add(new sqlParameter()
                    {
                        ParameterName = "@FileContent",Value = bytes
                    });
                    ConnC.con.open();
                    cmd.ExecuteNonQuery();
                    ConnC.con.Close();
                }
            }
            e.DeleteTemporaryData(); //Thought this would clear up the temp data and prevent mismatch but doesn't seem to help.
        }

        catch (Exception ex)
        {
            //exception logic here
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。