2014-01-20 29 views
1

正在升級我們的DNN版本......並且遇到了一個小障礙。DotNetNuke 7.0.2 - 通過FileID和PortalID使用FileManager.GetFile

舊過時代碼DNN 5.4

Dim objFileController As New FileController 
Dim objImageInfo As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(myFileId, myPortalId) 

新的嘗試與7.0.2

Dim objFileController As FileManager 
Dim objImageInfo As DotNetNuke.Services.FileSystem.IFileInfo = objFileController.GetFile(myFileId) 

一對夫婦雖然問題,使用新的方法...

1)這並未不指定門戶ID。我們有多個不同的門戶網站,我需要能夠針對特定的一個進行過濾。還有其他的重載,你可以指定PortalID,但是你不能指定FileID ...

2)我得到一個警告,指示objFileController之前已經使用了一個值。但是,如果我把「Dim __ as New FileManager」放到FileManager的'friend'上下文中,它會引發編譯錯誤。


* 編輯 *

我看到到FileManager.Instance.GetFile(寫到FileID)提供一些參考。 。 。實例是否僅指代正在運行的網站的當前門戶?如果是這樣,我可以使用這個,只是傳入FileID ...

回答

3
  1. 文件只能在一個入口,所以如果你有文件的ID,沒有必要指定門戶ID。如果你想驗證,你可以檢查你回來的IFileInfo對象的PortalId屬性。
  2. 沒有爲FileManager公開構造函數,但是您使用靜態Instance方法來獲取文件管理器的當前實例(不是特定於門戶網站的)。
+0

這很有效,謝謝你的幫助! – adam