2013-01-11 149 views
1

我使用EPPlus來創建excel文件併爲其提供數據。 我想讓用戶爲將要創建的文件選擇路徑和名稱。文件應存儲在客戶端計算機上。允許用戶選擇保存文件的文件路徑

我有RadTreeView我在那裏使用context menu。我想展示pop-up window

<telerik:RadTreeView 
    runat="server" 
    ID="TreeViewUnit" 
    OnContextMenuItemClick="TreeViewUnit_OnContextMenuItemClick" 
    meta:resourcekey="TreeViewUnitResource1"> 
    <DataBindings> 
     <telerik:RadTreeNodeBinding /> 
     </DataBindings> 
     <ContextMenus> 
     <telerik:RadTreeViewContextMenu runat="server" 
        ID="cmTreeViewUnitContextMenu"> 
        <Items> 
          <telerik:RadMenuItem Text="Export" Value="Export"> 
          </telerik:RadMenuItem> 
          <telerik:RadMenuItem Text="Import" Value="Import"> 
          </telerik:RadMenuItem> 
         </Items> 
      <CollapseAnimation Type="none"></CollapseAnimation> 
     </telerik:RadTreeViewContextMenu> 
         </ContextMenus> 
</telerik:RadTreeView> 

我該怎麼做?我目前出來的想法=/ 我檢查了jquery庫,但沒有找到任何東西,也許我錯過了水手。

+2

您不能在ASP.NET中使用「OpenFileDialog」。客戶端的文件系統不屬於服務器的業務。將二進制文件寫入響應,並讓用戶決定將其保存到哪裏。 –

回答

2

瀏覽器安全性不會允許你這樣做

如果我理解你正確地你想要做的是閱讀客戶端計算機的文件夾結構,並顯示給你的用戶,以便他們會能夠選擇一個特定的文件夾和文件的名稱。

用戶只能選擇文件夾,如果他們擊中保存文件當您的文件被傳輸,因爲該選擇是由瀏覽器本身提供的。但他們可能會選擇打開文件以及可能會將文件放在某個臨時文件夾(Firefox和IE)或默認下載文件夾(Chrome)中。沒有辦法(出於安全原因)可以在服務器或瀏覽器上運行的應用程序中提供客戶機的文件夾結構。並且您無法控制用戶是否會點擊保存打開

只能向用戶詢問文件名。但這只是意味着您的文件將以該名稱傳輸,用戶仍然可以在保存對話框中對其進行重命名。

防止瀏覽器直接在瀏覽器中打開Excel文件?

既然你轉移Excel文件,你應該知道,他們可能沒有任何確認繞過保存文件的可能性瀏覽器(Internet Explorer)中直接內打開對話框。您可以通過設置特定的MIME類型以及其他一些方式來讓瀏覽器詢問用戶如何處理文件,從而避免出現這種情況。

Refer to this Stackoverflow question規避此問題

+0

但不知何故,人們設法提供文件路徑瀏覽,問題是如何以其他方式做到這一點。 – makambi

+0

你的意思是什麼*文件路徑瀏覽*? –

+0

我明白了)我想讓用戶從服務器端選擇位置,但他可以自己做。謝謝,我知道了) – makambi

相關問題