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

 

 

轉自:http://blog.csdn.net/cnkivm/article/details/5620548


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM