现在的位置: 首页 > 综合 > 正文

asp.net 实现打开文件所在的文件夹, 本地可以打开,发布后点击按钮没有反应的解决办法

2013年11月19日 ⁄ 综合 ⁄ 共 2272字 ⁄ 字号 评论关闭

            此类情况大概是安全范畴的问题

            确定上传文件夹的共享,iis  以及电脑帐户,以及aspnet 等是否有对应的相关权限

            1.确认ASPNET 账户属于管理员级别

            2.在“服务”里面找到“IIS Admin”,双击,“登录”,勾选“服务与桌面交互”。重启iis。 
只要这样设置,不要去模拟administrator用户来调用iis方法了,使用匿名访问就可以了。但是为了安全起见,建议还是加上用户验证

            3.用webservice 调用;

            [WebService(Namespace=http://tempuri.org/)]

            [WebServiceBinding(ComformsTo=Wsiprofiles.BasicProfile1_1)]

            public class WebService:System.Web.Services.WebService

           {

            [DllImport("shell32.dll")]

           public static extern int ShellExecute(IntPtr hwnd,StringBuilder lpszOp,stringBuilder lpszFile,StringBuilder lpszParams,StringBuilder lpszDir,int FsShowCmd);

           public WebService()

          {

         

           }

         [WebMethod]

         public void HelloWorld(string text)

           {

          ShellExecute(Intptr.Zero,new StringBuilder("Open"),new stringBuilder(text),null,null,1)   

            }

 

          }

          调用

             WebService ws=new WebService();

              ws.HelloWord("a");

           4. WebService 中方法解释

               ShellExecute的功能是运行一个外部程序(或者打开一个已注册文件,打开一个目录,打印一个文件等等)并对外部程序有一定的控制。

               参数介绍:《"参数一","参数二","参数三","参数四","参数五","参数六"》

                hWnd{指定父窗口句柄}

                Operation{动作,譬如 open,print}

                 FileName:{指定要打开的文件或者程序}

                 Paramters:{给要打开的程序指定参数}

                  Directory:{缺省目录}

                  showCmd(打开选项)

执行成功会返回应用程序句柄,如果返回值<32 表示执行错误

 例子:调用计算器

             ShellExecute(NULL,"open","calc.exe",Null,Null,SW_SHOWNORMAL)

               调用记事本

                 ShellExecute(NULL,"open","NOTEPAD.exe",NULL,NULL,SW_SHOWNO)

 最后的那个参数,为窗口指定可视性方面的一个命令。

  请用下述任何一个常数

  SW_HIDE 隐藏窗口,活动状态给另一个窗口

  SW_MINIMIZE 最小化窗口,活动状态给另一个窗口

  SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态

  SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态

  SW_SHOWMAXIMIZED 最大化窗口,并将其激活

  SW_SHOWMINIMIZED 最小化窗口,并将其激活

  SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口

  SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口

  SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口

  SW_SHOWNORMAL 与SW_RESTORE相同

      方法二

      获取文件所在的目录

      然后转义

      eg :string text = txt_MH011.Text.Substring(txt_MH011.Text.IndexOf("CAR")).Replace(@"\","/");

            原目录为"C:\\CAR\\ASP||" 经上述操作后 可以得到 CAR/asp/  路径

           Response.Write("<script> window.open('" + text + "');</script>"); 打开该路径即可,以浏览器的方式打开文件所在的文件夹

           效果显示

           可以直接让用户打开该文件所在的文件夹,该方法已测试

 

            

           

抱歉!评论已关闭.