天天看點

第一次上傳資源,噴血離場

我的上傳限制是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,有意者聯系,呵呵