如何解决当多个用户同时上传到数据库时,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 举报,一经查实,本站将立刻删除。