当用户单击按钮并随后下载文件时,创建“另存为”对话框

时间:2013-11-27 19:06:16

标签: asp.net vb.net button

基本上我需要知道的是如何创建一个通用的“另存为”菜单,然后将该信息传递给我的webclient filedownload方法,其中显示“NEEDSTOBESAVEDAS。我已经在另一个区域有一个上传按钮,它保存了文件在数据库中服务器上的位置,在按钮单击事件中传递。这是我的代码:

--asp:linkbutton ButtonType="linkButton" Runat="server" Text="Download PDF" OnClick="Button2_Click" CommandArgument = '<%# Eval("part_pdf") %>--

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs)

        Dim dlbutton As LinkButton = CType(sender, LinkButton)
        Dim url = dlbutton.CommandArgument
        DownloadFile(url)
    End Sub

    Public Sub DownloadFile(ByVal _URL As String)

        Dim wclient As New WebClient()
        wclient.DownloadFile(_URL, "NEEDSTOBESAVEASDIALOG")

    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

您不能拥有自定义另存为对话框客户端。

浏览器将始终提示用户做出选择,使用服务器提供的文件名(仅限无路径!)作为默认值。

有一个很好的理由:假设一个网站可以将文件保存到任意位置而无需任何用户交互:

  • 它甚至可能会覆盖用户文档(用户甚至不会意识到这一点)
  • 可能会覆盖系统文件或用户数据以执行任意代码(或强制用户执行此操作)的恶意脚本。

如果(不太清楚)你想从客户端选择一个文件夹,然后下载服务器端(在服务器文件夹中),你会碰到另一面墙:通常(再次安全原因)IIS和ASP.NET用户有没有足够的权限来编写服务器中的所有东西(这是黑客们的一扇门)。