我的上傳限制是25M,我想上傳一個30多M的資源,把它壓縮成兩個壓縮包
但是第二個我上傳了9次,一次也沒成功,我快噴血了
每次都是等到上傳進度條到100%時才提示“此檔案您已經上傳過!”
我猜想這個頁面的上傳控件是這樣寫的:
if(UpdateFileSuccess())
{
}
else
bool UpdateFileSuccess()
UpdateFileToTempFile();
if(!ExistInUpdateFile(TempFile))
MoveTempFileToUpdateFile();
UpdateRecordToDatabase();
return True;
DeleteTempFile();
Response.Write("<script>windows.alert('此檔案您已經上傳過!');</script>");
return False;
當然這隻是本人個人的觀點,具體還是要看代碼才能分析出問題的邏輯錯誤
本人認為正常邏輯應該是這樣的:
if(!ExistUpdateFile())
if(UpdateFile())UpdateRecordToDatabase();
由于我第一次上傳if(!ExistInUpdateFile(TempFile)){},因而執行了{}
的内容,但是MoveTempFileToUpdateFile();執行成功之後
UpdateRecordToDatabase();由于某種原因沒有執行成功,導緻我一直想要上傳第一次沒有記錄到資料庫的檔案時,發現檔案已經存在,而記錄雖沒有,但是已存在的檔案是不允許再上傳的!
這就導緻了我碰到了這種情況的發生!
這個程式的健壯性不好,如果真的是不可避免地存在UpdateRecordToDatabase();有一定的幾率會失效的話,那麼本人建議使用者上傳的檔案不判斷是否存在就直接覆寫,或者可以提示使用者是否覆寫已存在的檔案,或者不判斷是否存在就直接不覆寫
當然看具體情況,要用什麼方法了,好了累了,先睡覺了,呵呵
本人qq648952046,有意者聯系,呵呵