您有幾個選項可供您訪問相關文件。
- 您可以獲取文件的內容作爲流,然後要求用戶通過
SaveFileDialog
類保存該文件。用戶然後必須選擇他們想要保存文件的位置,然後手動打開它。
public static byte[] GetBytesFromStream(Stream input){
byte[] buffer = new byte[16*1024];
using (MemoryStream ms = new MemoryStream()){
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0){
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
public void OnButtonClick(){
var templateUri = new Uri("/Common/New.xlsx, UriKind.Relative");
var templateStream = Application.GetResourceStream(templateUri).Stream;
var bytes = GetBytesFromStream(templateStream);
var sfd = new SaveFileDialog() {
DefaultExt = "xlsx",
Filter = "Excel Files (*.xlsx)|*.xlsx|All files(*.*)|*.*",
FilterIndex = 1
};
if (sfd.ShowDialog() == true) {
using (Stream stream = sfd.OpenFile()) {
stream.Write(bytes, 0, bytes.Length);
}
}
}
- 您可以將文件存儲服務器端,當用戶點擊這個按鈕,你告訴瀏覽器來獲得他有問題的文件。然後瀏覽器將接管並詢問用戶是否要將文件保存到磁盤或使用已知應用程序打開。
public void OnButtonClick(){
string link = "{the url/endpoint to the file on the server}";
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(link), "_blank");
}
- 你可以下去了
AutomationFactory
路線但這需要的配置改變了很多像建議here
我認爲更好的做法是在服務器上有這樣的事情,而不是客戶端。服務器配備更好,可以處理這種處理。
從描述中可以得知,該文件是嵌入爲內容還是作爲資源嵌入。 – Nkosi
我已設置爲內容 – Hitesh
從我的閱讀中,我會建議將文件存儲在服務器端,並讓客戶端從服務器上拉出文件。 – Nkosi