2011-08-10 91 views
1

我正在使用存儲數據庫中的文件的ASP.NET 1.1網站。該網站已經沒有問題,上載偉大的工作,自2001年損壞的文件Microsoft Office 2007 ASP.NET 1.1和SQL Server

但是下載任何類型的文件,最近客戶注意到,所有Microsoft Office 2007個文檔DOCXXLSX,ECT當任何用戶嘗試下載它們已損壞。

我注意到的是,SQL Server增加了一個額外的字節到DocumentContent(圖像列)。在上傳文件之前,內容和長度都很好。但是,在它們被存儲之後,SQL Server會添加一個EXTRA字節.... WHY ?????

互聯網上的很多人提供了一個關於如何下載文件的解決方案,這很好,對我很有用。

我在找這個問題的答案......爲什麼SQL SERVER會爲圖像列添加額外的字節?

它是一個Asp.NET 1.1和SQL 2000,但我們只是把它移到2008年,我們仍然有同樣的問題。

+0

@marc_s如果該網站自2001年以來真正在線,那麼假設當時的技術水平也是合理的。如果它的工作... –

+0

這是一個ASP 1.1 VB。 – Sami

+0

Michael,數據庫是SQL Server 2000,我們將它升級到2008,但我們仍然有同樣的問題。我現在要嘗試更改列類型,但我不認爲這是正確的想法,因爲該列被用於網站上的很多地方 – Sami

回答

1

我不是100%確定如果你的問題與我所遇到的一樣,但在我的情況下,我發現問題實際上是的寫作部分,而不是讀取部分。例如,我原來寫的代碼是這樣的:

Dim FILE_CONTENT(len) As Byte 
File.InputStream.Read(FILE_CONTENT, 0, len) 
SaveFileToDatabase(FILE_NAME, CONTENT_TYPE, FILE_CONTENT) 

當我改變了第一線,如下所示:

Dim FILE_CONTENT(0 To len - 1) As Byte 

讀數誤差消失。我只是忘記了VB在默認情況下分配N + 1個字節(O到N),而不指定下限。看到類似的情況在這裏描述:Uploaded Docx Files are getting corrupted。希望有所幫助。