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图书馆但没有找到任何东西,也许我错过了。

4

1 回答 1

2

浏览器安全不允许您这样做

如果我理解正确,您要做的是读取客户端计算机的文件夹结构并将其显示给您的用户,以便他们能够选择特定的文件夹和文件名。

用户只有在文件传输时点击保存文件时才能选择文件夹,因为该选择是由浏览器本身提供的。但他们也可以选择打开文件,这可能会将文件放在某个临时文件夹(Firefox 和 IE)或默认下载文件夹(Chrome)中。(出于安全原因)您无法在服务器或浏览器上运行的应用程序中提供客户端计算机的文件夹结构。而且您无法控制用户是否会点击SaveOpen

只能向用户询问文件名。但这只是意味着您的文件将以该名称传输,用户仍然可以在保存对话框中重命名它。

防止浏览器直接在浏览器中打开 Excel 文件?

由于您正在传输 Excel 文件,您应该知道它们可能会在没有任何确认对话框的情况下直接在浏览器 (Internet Explorer) 中打开,从而绕过保存文件的可能性。您可以通过设置特定的 mime 类型以及其他一些东西来说服浏览器询问用户如何处理文件,从而在服务器端防止这种情况发生。

请参阅此 Stackoverflow 问题以规避此问题

于 2013-01-11T13:39:14.637 回答