asp.net 上传文件

花雪如梦 2009-04-18 10:35:34
请各位帮我看看下面的代码哪里写错了,每次上传成功后,都往数据库表里加了两条一样的数据!谢谢!

protected void btnUpOutline_Click(object sender, EventArgs e)
{
string OutlineCode=txtId.Text;
string filePath = Server.MapPath("~/Outline/");
string OutlineDir="Outline/"+FileUpload1.FileName;
int ToMajorID =Convert.ToInt32(ddlMajorName.SelectedValue) ;

bool fileOK = false;
if (FileUpload1.HasFile)
{
string fileExtension = Path.GetExtension(FileUpload1.FileName).ToLower();//返回指定路径文件的扩展名
string allowedExtensions = ".doc";
if (fileExtension == allowedExtensions)
{
fileOK = true;
}
}
else
{
Response.Write("<script>alert('请选择所要上传的文件!');</script>");
}
if (fileOK)
{
try
{
FileUpload1.PostedFile.SaveAs(filePath + FileUpload1.FileName);
string addToDB = "insert into OutlineT(OutlineCode,OutlineName,OutlineDir,ToMajorID) values('" + OutlineCode + "','" + FileUpload1.FileName + "','" + OutlineDir + "',"+ToMajorID+")";
DbConn.getConnN(addToDB);
Response.Write("<script>if(confirm('上传成功!是否继续添加?')){location.href='AddOutline.aspx';}else{location.href='OutlineEduMgn.aspx'}</script>");
}
catch (Exception ex)
{
DbConn.MessageBox(ex.Message);
}
}
else
{
Response.Write("<script>alert('所上传的文件只能是.doc类型!请重新选择!');</script>");
}
}
...全文
120 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
皓月明 2009-04-19
  • 打赏
  • 举报
回复
不知道哪的问题
troy-zhou 2009-04-19
  • 打赏
  • 举报
回复
Response.Write(" <script>if(confirm('上传成功!是否继续添加?')){location.href='AddOutline.aspx';}else{location.href='OutlineEduMgn.aspx'} </script>")
这段代码导致了事件执行了两次
Adechen 2009-04-19
  • 打赏
  • 举报
回复
好像没有什么问题,跟踪一下
wuyq11 2009-04-19
  • 打赏
  • 举报
回复
代码没问题。调试看看,是否执行了两次事件
llsen 2009-04-19
  • 打赏
  • 举报
回复
直接用我这个好了
好用的
 #region 上传文件
/// <summary>
/// 上传文件
/// </summary>
/// <returns></returns>
private ArrayList SaveFiles()
{
ArrayList fileArray = new ArrayList();

///'遍历File表单元素
HttpFileCollection files = HttpContext.Current.Request.Files;

try
{
for (int iFile = 0; iFile < files.Count; iFile++)
{
///'检查文件扩展名字
HttpPostedFile postedFile = files[iFile];
string fileName, fileExtension;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName);
fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + iFile.ToString() + fileExtension;

///'可根据扩展名字的不同保存到不同的文件夹
///注意:可能要修改你的文件夹的匿名写入权限。
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("file/") + fileName);

fileArray.Add(System.Web.HttpContext.Current.Request.MapPath("file/") + fileName);
}
}

for (int i = fileArray.Count + 1; i <= 5; i++)
{
fileArray.Add("");
}

return fileArray;
}
catch
{
throw new Exception("BIG");
}
}
#endregion
nszhang 2009-04-19
  • 打赏
  • 举报
回复
这段代码没看出啥问题。。。。
Riverwcj 2009-04-19
  • 打赏
  • 举报
回复
设置断点。。单步调试
蓝海D鱼 2009-04-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zyaccp30 的回复:]
可以设断点调试下 多调试是个好习惯
希望能够找出问题所在!
[/Quote]
调试
chen_ya_ping 2009-04-19
  • 打赏
  • 举报
回复
那你可以再插入数据库以后把fileOK改为false.
qiuqingpo 2009-04-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mfk581603 的回复:]
Response.Write(" <script>if(confirm('上传成功!是否继续添加?')){location.href='AddOutline.aspx';}else{location.href='OutlineEduMgn.aspx'} </script>")
这段代码导致了事件执行了两次
[/Quote]
同意楼上的看法
happy664618843 2009-04-19
  • 打赏
  • 举报
回复
每次执行时检查客户端是否回发了可以回发多添加一条数据
yujun3201094 2009-04-19
  • 打赏
  • 举报
回复
没看出来问题在哪里,帮顶啦
qq196260188 2009-04-18
  • 打赏
  • 举报
回复
就这些代码看不出那里出错,要把写入数据库那些代码也放出来
辰爸 2009-04-18
  • 打赏
  • 举报
回复
你把你往数据库插入的记录找出来啊!是不是那里出问题了!~~
AuC 2009-04-18
  • 打赏
  • 举报
回复
可以设断点调试下 多调试是个好习惯
希望能够找出问题所在!

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧