windows2008+iis7無組件上傳寫入文件失敗ADODB.Stream 錯誤 800a0bbc問題.
現象:寫入文件失敗,ADODB.Stream 錯誤 800a0bbc
條件:在已排除一般的解決方法文件夾權限后,并且服務器為windows2008
希望寫這文章可以讓大家避免浪費太多時間,最快地解決問題。
一個ASP程序用到無組件上傳,在本地XP SP3 IIS5.1及在Windows Server 2003 + IIS6.0上測試均為可以正常上傳.到把程序放了windows2008+IIS7.0上發現內部服務器錯誤500,最后我把其調為可顯示詳細錯誤信息,顯示為:
寫入文件失敗,ADODB.Stream 錯誤 800a0bbc
我在網上找了很多相關的解決方法,說是文夾權限或是目錄問題,很顯然碰到的并非為權限問題.看了很多解決方法都沒用,在差不多絕望的時候,竟然看到一篇文章說windows2008顯示系統時間的格式竟然是:2010/5/24,而并非是以前的2010-5-24,由于重命名上傳的文件是按時間來命名的,本要求為
2010524.xls,但到windows2008平臺上最后變成了2010/5/24.xls,這樣則會有一個問題,就是會被當成文件夾和路徑處理,最終會導致了真正的不存在目錄,最后會寫入出錯。
如果可以,你可以試一下response.write 寫出整個另存為的路徑出來即可看到如:***/uploadfile/2010/5/24.xls,而且實際應該為::***/uploadfile/2010524.xls才是正確的
解決方法:
只要為“2010/5/24”中的“/”替換為“”(空)即可:
原uploadsave.asp中的函數為:
function makefilename(fname) fname = date() fname = replace(fname,"-","") fname = replace(fname," ","") fname = replace(fname,":","") makefilename=fname&".xls"end function
在其中加上一句:fname = replace(fname,"/","")
最后為:
function makefilename(fname) fname = date() fname = replace(fname,"-","") fname = replace(fname,"/","") fname = replace(fname," ","") fname = replace(fname,":","") makefilename=fname&".xls"end function
以上所述是361源碼網給大家介紹的windows2008+iis7無組件上傳寫入文件失敗ADODB.Stream 錯誤 800a0bbc問題,希望對大家有所幫助。
當然出現“ADODB.Stream 錯誤 '800a0bbc' 寫入文件失敗”還有如下的可能性:
1、你要保存的文件名已存在,而未設置savetofile方法的覆蓋屬性。
2、路徑沒有用server.MapPath()映射,這種情況下:
如果路徑為絕對路徑,則發生上面的問題:寫入文件失敗。
如果路徑為相對路徑,則會保存到相對于:c://windows//system32的路徑。(本機測試結果)。
3、和錯誤 '80070070' 一樣,空間不足, 引起這個800a0bbc錯誤。
4、服務器目錄不支持寫入,或者需要寫入的目錄不存在 。
等等,可能本站沒有能總結完善,歡迎廣大網友提供更多完善的可能。
以上就是ADODB.Stream 錯誤 '800a0bbc' 寫入文件失敗的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。新聞熱點
疑難解答