2013-07-18 87 views
0

我目前使用ASP FileUpload控件將文檔上傳到SharePoint 2010文檔庫。SharePoint 2010上傳Office 2010文檔使用流

該流程適用於OFfice 92-2003文檔,TXT,RTF甚至PDF,直到符合Office 2010文檔。

問題是:您可以成功上傳文件。該文件位於SharePoint服務器上。但是,在下載到本地後,打開文件將顯示該文件具有無法讀取的內容(或損壞)並需要恢復讀取。恢復後,它正常打開。 XLSX file

我記得在某處閱讀Office 2010文檔上傳流與Office 2003稍有不同,但不記得它究竟是怎麼回事。

這是我的代碼:

ASPX

<asp:FileUpload ID="UploadControl" runat="server" onchange="FileChooseAction()" /> 

代碼隱藏

Dim byt As Byte() 
ReDim byt(UploadControl.PostedFile.InputStream.Length) 
UploadControl.PostedFile.InputStream.Seek(0, SeekOrigin.Begin) 
UploadControl.PostedFile.InputStream.Read(byt, 0, UploadControl.PostedFile.InputStream.Length) 
UploadControl.PostedFile.InputStream.Close() 

回答

0

我發現那是因爲從我的字節數組只有一個額外的字節。 正確的代碼應該是

Dim byt As Byte() 
ReDim byt(UploadControl.PostedFile.InputStream.Length - 1) 
UploadControl.PostedFile.InputStream.Seek(0, SeekOrigin.Begin) 
UploadControl.PostedFile.InputStream.Read(byt, 0, UploadControl.PostedFile.InputStream.Length - 1) 
UploadControl.PostedFile.InputStream.Close() 

看來只有Office 2010個文檔碰上這種額外的字節麻煩(設計?)。 PDF,Office 97-2003等不是。