2015-03-19 26 views
1

我試圖從我的應用程序Web上傳文件到共享點列表,但在嘗試使用文件流打開/讀取文件時遇到了一些問題。訪問位於Sharepoint列表中的文件

我的代碼:

using (var stream = System.IO.File.OpenRead 
("https://mysite.sharepoint.com/sites/dev/appweb/document-library/fileFolder/image.png")) 
    { 
     var folder = ctx.Web.Lists.GetByTitle("Images").RootFolder; 

     FileCreationInformation fileInfo = new FileCreationInformation(); 
     fileInfo.ContentStream = stream; 

     stream.Seek(0, SeekOrigin.Begin); 
     fileInfo.Overwrite = true; 
     fileInfo.Url = "image.png"; 

     folder.Files.Add(fileInfo); 
     ctx.ExecuteQuery(); 
    } 

所以我建立使用spContext.SPAppWebUrl.ToString();該應用程序網站的值賦給變量的uploadFilePath變量與硬編碼的文件路徑和用戶輸入的文件名一起彌補我的位置我想要上傳的文件。

唯一的問題是,當我打開我的文件using (var stream = System.IO.File.OpenRead("https://mysite.sharepoint.com/sites/dev/appweb/document-library/fileFolder/image.png"))時,由於我的應用程序網址中的分號「https:// .....」是非法字符,因此存在問題。

有沒有什麼辦法可以在不使用完整網址的情況下訪問文件?我曾嘗試修剪「https://」從我的網址,但我認爲共享點上下文期望一個安全的連接,我得到一個訪問被拒絕的錯誤。

+0

請問您可以取而代之的方法參數在您的示例代碼中使用常量值嗎?現在評論「打開我的文件,使用(var stream = System.IO.File.OpenRead(uploadFilePath))有一個問題,因爲」https:// .....「中的分號非常混亂,因爲它不是清除哪些變量設置爲「https:// ...」(假設您正在討論'fileUrl',否則它將毫無意義,但無論如何都要檢查)。 – 2015-03-19 05:02:47

+0

@AlexeiLevenkov沒有問題,更簡單理解? – Junior 2015-03-19 05:19:54

+0

感謝您的更新 - 現在很明顯,您正在使用錯誤的方法或參數來打開文件 - 查看「File.OpenRead」的文檔 - 它僅打開本地文件。現在不清楚您是否使用錯誤的源路徑或錯誤的方法來獲取文件的流 - 你可能會發現自己的答案,如果沒有 - 更新與該信息的問題。 – 2015-03-19 05:26:56

回答

2

您正在使用錯誤的方法或參數來打開文件 - 請檢查文檔File.OpenRead - 它僅打開本地文件。

您需要使用HTTP方法(如WebClient/WebRequest)讀取流或上傳本地文件。

相關問題