我使用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
库,但没有找到任何东西,也许我错过了smth.
浏览器安全性不允许您这样做
如果我理解正确的话,你要做的是读取客户端计算机的文件夹结构并显示给你的用户,这样他们就可以选择一个特定的文件夹和文件名。
用户只能选择文件夹,如果他们点击保存文件当你的文件被传输,因为选择是由浏览器本身提供的。但他们可能会选择打开文件,这可能会把文件放在一些临时文件夹(Firefox和IE)或默认下载文件夹(Chrome)。(出于安全原因)您不可能在服务器或浏览器上运行的应用程序中提供客户机的文件夹结构。而且你无法控制用户是点击Save还是Open。
只能向用户询问文件名。但这只是意味着你的文件将以该名称传输,用户仍然可以在保存对话框中重命名它。
阻止浏览器直接在浏览器内打开Excel文件?
因为你正在传输Excel文件,你应该意识到他们可能没有任何确认对话框直接在浏览器(Internet Explorer)中打开,这绕过了保存文件的可能性。您可以在服务器端通过设置特定的mime类型以及其他一些东西来阻止这种情况,以说服浏览器询问用户如何处理该文件。
参考这个Stackoverflow问题来规避这个问题。