允许用户选择文件路径保存文件的位置

时间:2013-01-11 13:37:09

标签: jquery asp.net file

我使用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库,但没找到任何东西,也许我错过了。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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

Refer to this Stackoverflow question绕过这个问题