这资源上传这个页面,我的神啊,我今晚上得传快要疯了
我的上传限制是25M,我想上传一个30多M的资源,把它压缩成两个压缩包
我第一个压缩文件上传上去了,
但是第二个我上传了9次,一次也没成功,我快喷血了
每次都是等到上传进度条到100%时才提示“此文件您已经上传过!”
我猜想这个页面的上传控件是这样写的:
if(UpdateFileSuccess())
{
}
else
{
}
bool UpdateFileSuccess()
{
UpdateFileToTempFile();
if(!ExistInUpdateFile(TempFile))
{
MoveTempFileToUpdateFile();
UpdateRecordToDatabase();
return True;
}
else
{
DeleteTempFile();
Response.Write("<script>windows.alert('此文件您已经上传过!');</script>");
return False;
}
}
当然这只是本人个人的观点,具体还是要看代码才能分析出问题的逻辑错误
本人认为正常逻辑应该是这样的:
if(!ExistUpdateFile())
{
if(UpdateFile())UpdateRecordToDatabase();
}
else
{
Response.Write("<script>windows.alert('此文件您已经上传过!');</script>");
}
由于我第一次上传if(!ExistInUpdateFile(TempFile)){},因而执行了{}
的内容,但是MoveTempFileToUpdateFile();执行成功之后
UpdateRecordToDatabase();由于某种原因没有执行成功,导致我一直想要上传第一次没有记录到数据库的文件时,发现文件已经存在,而记录虽没有,但是已存在的文件是不允许再上传的!
这就导致了我碰到了这种情况的发生!
这个程序的健壮性不好,如果真的是不可避免地存在UpdateRecordToDatabase();有一定的几率会失效的话,那么本人建议用户上传的文件不判断是否存在就直接覆盖,或者可以提示用户是否覆盖已存在的文件,或者不判断是否存在就直接不覆盖
当然看具体情况,要用什么方法了,好了累了,先睡觉了,呵呵
本人qq648952046,有意者联系,呵呵
本文发布于:2024-02-01 14:24:05,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170676864537228.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |