Get byte Array from current opened downloaded Word Document .docm from Sharepoint, without save to local drive

时光毁灭记忆、已成空白 提交于 2021-02-08 06:47:49

问题


How can I get the byte array of the opened Word Document (.docm) without saving it to a local drive first. The document will be opened on a Thin Client without any local drive from SharePoint. When the user want to save the changes, I need to send the byte array to a web-service to process it. (Not back to SharePoint).

Dim filePath As String
Dim fileName As String
Dim fullFileName As String
filePath = ThisDocument.path
fileName = ThisDocument.Name
fullFileName = filePath + "/" + fileName
  • the value of filePath is 'http://webiste/application'
  • the value of fileName is 'theOpenFileName.docm'
  • the value of fullFileName is 'http://webiste/application/theOpenFileName.docm'

How can I get the whole file as a byte array so I can send it to the web-service like this:

Dim bytFile() As Byte
Dim http
Dim userName As String
Dim url As String

Set http = CreateObject("MSXML2.ServerXMLHTTP")
userName = "Me"
 
'--- read file
bytFile = ?????????? 

'--- send the file to the API server
url = "http://localhost/DocWebApi/Post?fileName=" & fileName & "&userName=" & userName
 
http.Open "POST", url, False
http.Send (bytFile)
http.waitForResponse 4000

Thanks in advance!


回答1:


Try the next approach, please:

Sub testByteArray()
  Dim bytFile() As Byte, strDocShare As String
  Dim fileDoc As Integer: fileDoc = FreeFile
  
  strDocShare = Application.GetOpenFilename("Office Documents (*.docm),*.docm", , "Please select document to be processed...")
  If strDocShare = False Then Exit Sub 'If no document has been selected

  Open strDocShare For Binary Access Read As #fileDoc
     ReDim bytFile(0 To LOF(fileDoc) - 1)
     Get #fileDoc, , bytFile
  Close #fileDoc
End Sub

If the document will be open, the above code may return an error. A method to determine if a shared document/workbook is open by other user, uses some similar code and catches the error...



来源:https://stackoverflow.com/questions/62634848/get-byte-array-from-current-opened-downloaded-word-document-docm-from-sharepoin

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!