C#编的BS结构,如何在web层里获得浏览本地目录? web程序当前路径:Server.MapPath你说的是这个吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你想想,Web使用者没有权限怎么可以看到本机的所有目录。 很简单的,你就使用HTML的控件:File Field就好了,运行时直接点浏览,就出来了哦 <input type=file id=file runat=server> 客户端浏览选择服务器的目录信息,那怎么可以?除非备份到本地!用HTML的FILE控件就可以,不过需要用去掉最后的文件名称即为目录名称 如果有权限的话直接物理目录映射然后通过使用System.IO就行了,就象在c/s下。 这个功能有点类似在线文件管理器。可以参考《ASP.NET Web站点高级编程》 this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); this.saveFileDialog1.AddExtension = true; this.saveFileDialog1.DefaultExt = "rtf"; this.saveFileDialog1.CheckPathExists = true; this.saveFileDialog1.Filter = "RTF格式文件(*.rtf)|*.rtf"; this.saveFileDialog1.OverwritePrompt = true; if((this.saveFileDialog1.ShowDialog()== DialogResult.OK) &(saveFileDialog1.FileName.Length > 0)) { //this.richTextBox1.SaveFile(this.saveFileDialog1.FileName); } 提示错误为“/Web_14”应用程序中的服务器错误。--------------------------------------------------------------------------------在应用程序未以 UserInteractive 模式运行的情况下显示有模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 在应用程序未以 UserInteractive 模式运行的情况下显示有模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。源错误: 行 83: this.saveFileDialog1.Filter = "RTF格式文件(*.rtf)|*.rtf";行 84: this.saveFileDialog1.OverwritePrompt = true;行 85: if((this.saveFileDialog1.ShowDialog()== DialogResult.OK)行 86: &(saveFileDialog1.FileName.Length > 0))行 87: { 源文件: i:\inetpub\wwwroot\web_14\databackup.aspx.cs 行: 85 堆栈跟踪: [InvalidOperationException: 在应用程序未以 UserInteractive 模式运行的情况下显示有模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。] System.Windows.Forms.CommonDialog.ShowDialog() +665 Tfcz.Web.DataBackup.Button1_Click(Object sender, EventArgs e) in i:\inetpub\wwwroot\web_14\databackup.aspx.cs:85 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain() +1277 我认为不可以实现,因为浏览器是不会给你权限的,用C#写个IE插件吧,此问题只能使用CS方式解决. 有一种解决方案就是用SharpZipLib压缩打包你要备份的文件和文件夹,然后Response.Write提供下载就可以了。我已经实现了这个方案,以前有人说不实用,我就没有写文章了。我这个功能是在线文件管理系统的一部分,还有多文件上传,zip文件上传后自动解压。 MS的SharePoint就可以浏览和访问本地的目录和文件,不清楚它是怎么做的 DataGridView 选中一行 如何删除XML的命名空间 在.net开发中,如何实现用户登陆时连接数据库,若用户不存在,不能登录 CRUD的R到底是Retrieve还是Read? config文件的问题,帮我看一下。 麻烦各位发表几篇delegate用发的经典示例,顺便用代码为我解释下这句话! 如何实现多列的dropdownlist MessageBox的用法 报表问题 关于DotNet对象持久化 如何把String转换成INT的问题 报错方法与委托不匹配?怎么回事?
就象在c/s下。
this.saveFileDialog1.AddExtension = true;
this.saveFileDialog1.DefaultExt = "rtf";
this.saveFileDialog1.CheckPathExists = true;
this.saveFileDialog1.Filter = "RTF格式文件(*.rtf)|*.rtf";
this.saveFileDialog1.OverwritePrompt = true;
if((this.saveFileDialog1.ShowDialog()== DialogResult.OK)
&(saveFileDialog1.FileName.Length > 0))
{
//this.richTextBox1.SaveFile(this.saveFileDialog1.FileName);
}
“/Web_14”应用程序中的服务器错误。
--------------------------------------------------------------------------------在应用程序未以 UserInteractive 模式运行的情况下显示有模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 在应用程序未以 UserInteractive 模式运行的情况下显示有模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。源错误:
行 83: this.saveFileDialog1.Filter = "RTF格式文件(*.rtf)|*.rtf";
行 84: this.saveFileDialog1.OverwritePrompt = true;
行 85: if((this.saveFileDialog1.ShowDialog()== DialogResult.OK)
行 86: &(saveFileDialog1.FileName.Length > 0))
行 87: {
源文件: i:\inetpub\wwwroot\web_14\databackup.aspx.cs 行: 85 堆栈跟踪:
[InvalidOperationException: 在应用程序未以 UserInteractive 模式运行的情况下显示有模式对话框或窗体是无效的操作。请指定 ServiceNotification 或 DefaultDesktopOnly 样式,以显示服务应用程序发出的通知。]
System.Windows.Forms.CommonDialog.ShowDialog() +665
Tfcz.Web.DataBackup.Button1_Click(Object sender, EventArgs e) in i:\inetpub\wwwroot\web_14\databackup.aspx.cs:85
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277