我正在开发一个Web应用程序,其中一个页面有一些必要的用户应该选择系统中的任何文件夹,如果他选择ex:D:\ xyz,那么这个路径应该保存在数据库中,我有编写存储到数据库和剩余所有内容的代码。但实际上我认为,如果它像浏览按钮单击功能选择文件夹,我所做的是,因为我不知道如何在Web应用程序中使它只是我使用文本框,以便能够用户键入路径。可以,任何人都可以帮助我如何在网页中应用Open File Dialog功能吗?
先谢谢,
此致 格利扬
答案 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.aspx(File 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应用程序执行此操作。
最简单的解决方案是告诉用户在资源管理器中浏览并复制路径,以粘贴到对话框中。