如何将OpenFileDialog函数应用于Web应用程序

时间:2011-03-11 12:31:21

标签: .net asp.net vb.net web-applications openfiledialog

我正在开发一个Web应用程序,其中一个页面有一些必要的用户应该选择系统中的任何文件夹,如果他选择ex:D:\ xyz,那么这个路径应该保存在数据库中,我有编写存储到数据库和剩余所有内容的代码。但实际上我认为,如果它像浏览按钮单击功能选择文件夹,我所做的是,因为我不知道如何在Web应用程序中使它只是我使用文本框,以便能够用户键入路径。可以,任何人都可以帮助我如何在网页中应用Open File Dialog功能吗?

先谢谢,

此致 格利扬

4 个答案:

答案 0 :(得分:1)

没有ASP.Net Control来选择文件夹。

作为一种简单的解决方法,您可以使用FileUpload - 控件让用户选择文件,您可以save the folder of that file。但这只适用于IE,因为其他浏览器不发布完整的文件路径,只发布文件名(安全限制)。

编辑:正如Ben提到的那样在IE> 7中不起作用: http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspxFile Upload Control部分)

答案 1 :(得分:1)

添加windows openfile对话框参考toweb应用程序,点击解决方案探索项目名称添加参考system.windows.forms 然后在这里遵循这种编码风格我已经提供了VB示例代码,如果您遇到任何问题,可以将其转换为C#

VB代码

   Import system.threading

   Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs)  Handles btnUpload.Click

    Dim objThread As New Thread(AddressOf FnOpenFileDialog)
    objThread.IsBackground = True
    objThread.SetApartmentState(ApartmentState.STA)
    objThread.Start()
End Sub

Private Sub FnOpenFileDialog()
    Dim openfile As New System.Windows.Forms.OpenFileDialog
    'openfile.InitializeLifetimeService()
    'openfile.Filter = String.Format("Image file (*.jpg)|*.jpg|All files (*.*)|*.*")
    openfile.Filter = String.Format("Image file (*.jpg)|*.jpg")
    openfile.Multiselect = True
    openfile.ShowDialog()
End Sub

答案 2 :(得分:1)

对于Web应用程序:

System.IO.FileInfo file = new System.IO.FileInfo(file1);
Response.AddHeader("Content-Disposition", "attachment;filename=\"" +"Filename"+".ext"+ "\"");
            Response.AddHeader("Content-Length", file.Length.ToString());
            Response.ContentType = file.Extension.ToLower();
            Response.WriteFile(file.FullName);
            Response.End();

答案 3 :(得分:0)

  • 用户是选择文件还是文件夹?
  • 服务器上的位置,还是本地计算机上的位置?
  • 您是在尝试上传某些内容,还是下载某些内容,或只是想要这条路径?

如果您想要服务器文件或文件夹的路径,则必须让服务器提供可供选择的文件夹列表。

如果您只想要本地文件的路径,则无法从Web应用程序执行此操作。

最简单的解决方案是告诉用户在资源管理器中浏览并复制路径,以粘贴到对话框中。