当前位置:编程学习 > C#/ASP.NET >>

.net 打开文件

请教 .net C# JS  下怎么直接打开本地文件?就像双击个doc文件效果一样。要能支持多种格式至少是doc  xls  ppt  pdf 之类常用的,在线等。。。 --------------------编程问答-------------------- 不明白什么意思。 --------------------编程问答-------------------- JS直接打开 好像不行吧 

window.open();
window.location.href= --------------------编程问答--------------------
引用 1 楼 nosuchtracter 的回复:
不明白什么意思。

同问.. --------------------编程问答-------------------- 举个例子:选中一条记录,点一个查看的按钮,查看这条记录对应 的正文信息,正文是放在本地硬盘上的,正文格式有可以是 doc xls txt fpt 一些常见格式,想问下怎么打开,在网页里也行,直接打开文件就像双击效果那样也行,只要能打开就好。。。谢谢各位大虾。。 --------------------编程问答-------------------- --------------------编程问答-------------------- http://topic.csdn.net/u/20090430/00/8d5053b2-6ef9-443e-addc-f5a444909b52.html --------------------编程问答-------------------- 直接链接到地址。让IE自己判断

例如:打开一个 :http://网站/upload/a.doc
这样IE会自动找word打开的。 --------------------编程问答-------------------- eg:
            System.Diagnostics.Process.Start("d:\\test.txt"); --------------------编程问答-------------------- Peter 兄弟可否详细点哈,我看你的貌似有戏。。。 --------------------编程问答--------------------
引用 9 楼 caoys316 的回复:
Peter 兄弟可否详细点哈,我看你的貌似有戏。。。

System.Diagnostics.Process.Start("d:\\test.txt");
System.Diagnostics.Process.Start("d:\\100道趣题.pdf");

System.Diagnostics.Process.Start(str);
str是你的文件(包括路径),运行这条语句就可以打开文件了。(至少我试的txt,pdf可以打开) --------------------编程问答-------------------- 我试了下,但是不能在客户端打开,只能在服务器端打开,可以怎么设置么?文件是保存在服务器硬盘上的,想在客户端打开。System.Diagnostics.Process.Start(str)  只能在服务器上打开。。。继续请教。。 --------------------编程问答--------------------
引用 7 楼 yan267 的回复:
直接链接到地址。让IE自己判断

例如:打开一个 :http://网站/upload/a.doc
这样IE会自动找word打开的。

像他这个,使用链接试试 --------------------编程问答-------------------- 试试:
eg:
打开excel
Response.ContentType="application/x-msexcel";   
Response.WriteFile(@"C:\test.xls");  
 
打开word
Response.ContentType="application/x-msword";   
Response.WriteFile(@"C:\test.doc");  --------------------编程问答-------------------- 试过,这样IE会直接提示下载,我是想不让他提示任何东西,直接就打开。顺便请教下在提示下载的“打开、保存、取消”那个IE的界面里下面有个“打开此类文件前总是提示”的复选框,默认打勾的,我把勾去掉后就能直接打开了。但是不知道在哪再把勾打上,看不到那个提示的界面 了,他会直接打开,不给你打勾的机会了。。 --------------------编程问答-------------------- 如果用JS 可以控制到的话我可以先给勾去掉,在打开完后再给打上,不知道JS 怎么设置
--------------------编程问答-------------------- 额。。。不能沉啊。。。神啊,帮我顶顶吧。。 --------------------编程问答-------------------- shell.
从cmd打开. --------------------编程问答-------------------- swalp 兄:能稍微详细点嘛?或者给个小例子啥的哈。。。这好像有戏。。
--------------------编程问答--------------------

    public string myCmd(string myCommon)
    {
        Process process = new Process();
        process.StartInfo.FileName = "cmd.exe";
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardInput = true;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.CreateNoWindow = true;
        process.Start();
        process.StandardInput.WriteLine(myCommon);
        process.StandardInput.WriteLine("exit");
        string myResult = process.StandardOutput.ReadToEnd();
        process.Close();
        return myResult;
    }


试了,本地调试可以的,放IIS客户端就一直死在那了。。。
继续请教。。。 --------------------编程问答-------------------- 可以用cmd,shell么?
//服务器不可能调运客户端的程序

你是要点击后直接打开,什么提示都没有的? --------------------编程问答-------------------- 可以搞成客户端下载,下载后查看。 --------------------编程问答-------------------- 关注。。。。。。。。。。。。 --------------------编程问答--------------------
引用 20 楼 peter200694013 的回复:
可以用cmd,shell么?
//服务器不可能调运客户端的程序

你是要点击后直接打开,什么提示都没有的?

对的没提示,然后进度条就一直跑也就死那了,打不开了。。。

21楼的兄弟:下载后查看的话用js么?new 那对像时如果ie安全不设的话是new不出来的。。。不知道还有什么高招能打开客气端的文件,继续请教。。。 --------------------编程问答--------------------
没提示的不会,帮你顶下吧... --------------------编程问答-------------------- 谢谢。。。帮顶困然重要,解决问题更重要。。。
继续请教。。。同时期待高手。。 --------------------编程问答-------------------- 想到个东西,百度文库里页面中的文档全是pdf的 ,那个有没有高手清楚是怎么实现的?打开时可以把别的格式的文件也用pdf打开么?就像这个http://wenku.baidu.com/view/65897421af45b307e87197e4.html

知道的大虾们赐教哈。。 --------------------编程问答--------------------
引用 14 楼 caoys316 的回复:
试过,这样IE会直接提示下载,我是想不让他提示任何东西,直接就打开。顺便请教下在提示下载的“打开、保存、取消”那个IE的界面里下面有个“打开此类文件前总是提示”的复选框,默认打勾的,我把勾去掉后就能直接打开了。但是不知道在哪再把勾打上,看不到那个提示的界面 了,他会直接打开,不给你打勾的机会了。。



 string str = " <iframe src=\"地址" width=\"700\" id=\"bobo\" height=\"500\" ></iframe>";


用这样的方式,就不会弹出下载框了。 --------------------编程问答-------------------- 周末,加班请教。。。
--------------------编程问答--------------------
<SCRIPT   language=JavaScript>   
  function   Run(strPath)   {   
  exe.value=strPath;   
  try   {   
  var   objShell   =   new   ActiveXObject("wscript.shell");   
  objShell.Run(strPath);   
  objShell   =   null;   
  }   
  catch   (e){alert('找不到文件"'+strPath+'"(或它的组件之一)。请确定路径和文件名是否正确,而且所需的库文件均可用。')   
    
  }   
  }   
  </SCRIPT>   
    
  请输入要运行的程序:<br><input   name=exe   type=text   size=20   value="regedit"><BUTTON   class=button   onclick="Run(exe.value)">确定</BUTTON><BUTTON   class=button   onclick=exe.value="";>重新输入</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('notepad')">记事本</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('mspaint')">画图板</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('calc')">计算器</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('cmd')">cmd</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('Regedit')">Regedit</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('Msconfig')">Msconfig</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('file:///D:/Program%20Files/Winamp/WINAMP.EXE')">WINAMP</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('IEXPLORE.EXE')">IE</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('..')">..</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('%windir%')">%windir%</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('%temp%')">%temp%</BUTTON><br>   
  <BUTTON   class=button   onclick="Run('file:///D:/Program%20Files/Tencent/qq.EXE')">WINAMP</BUTTON> 


JS打开文件,来源于网络 --------------------编程问答-------------------- 高手高手。。。小弟试下。。 --------------------编程问答--------------------  liuhelong:请教下:    var   objShell = new ActiveXObject("wscript.shell");   这句new 不了,报个“Automation server can't create object”  服务器不能创建对像 怎么搞? --------------------编程问答-------------------- 哦,我知道了。。。IE的安全东西要设下。。。但是不能让每个用户都设下啊?怎么能用JS偷偷的给他设好啊?继续请教。。。
--------------------编程问答-------------------- 还是不行,它只能打开本地文件,我想打开服务器上的文件要怎么写路径?
  <BUTTON   class=button   onclick="Run('file:///192.168.1.35/11.doc')">WINAMP11</BUTTON> 
--------------------编程问答-------------------- 补充下:一个号只能连续回复三次,baobingbing = caoys316 --------------------编程问答-------------------- 如果你是想打开客户端的文件,不用试了,除了利用系统漏洞没有别的办法,用C#等服务器端语言一定打不开,因为他在服务器上执行,用JS一定被普通用户拦截,因为如果通过JS可以打开本地文件 早就世界大乱了,随便搞个病毒脚本啥的通过浏览网页就能打开多恐怖啊,

所以办法是 通知你的客户做相应的IE设置 或者写客户端控件,让客户先安装控件后操作! --------------------编程问答-------------------- var objShell = new ActiveXObject("wscript.shell");  这个不行是因为服务器可能没有安装脚本组件。即便行,你也不能拿他打开客户端的文件、 --------------------编程问答-------------------- CODE163: 那我想在线打开服务器上的文件,要怎么实现?不可以让用户下载,只能打开。还要支持常用格式的文档,请教下...给小弟支支招。。。 --------------------编程问答-------------------- LZ这是不可能的,B/S就是B/S,跟C/S是不同的。。。
一个B/S的程序要是能打开你电脑上的文件,你想想安全何在啊。。。 --------------------编程问答-------------------- 要打开你站点下的文件的话,
可以设置Response的contentType为相应的type
resonse写到页面

ps:contentType类型
http://homepage.yesky.com/241/2678241.shtml --------------------编程问答-------------------- mzmxchenweij:能不能贴点代码哈,我不太清楚你的意思哈
--------------------编程问答--------------------
引用 27 楼 yan267 的回复:
引用 14 楼 caoys316 的回复:
试过,这样IE会直接提示下载,我是想不让他提示任何东西,直接就打开。顺便请教下在提示下载的“打开、保存、取消”那个IE的界面里下面有个“打开此类文件前总是提示”的复选框,默认打勾的,我把勾去掉后就能直接打开了。但是不知道在哪再把勾打上,看不到那个提示的界面 了,他会直接打开,不给你打勾的机会了。。



C# code

 string s……



这个不弹出选择框的问题,我以前弄过,这个好像还是不行。 --------------------编程问答-------------------- 用外部控件吧,dsoframer.ocx或者点聚的weboffice可以支持在线打开office文档 pdf --------------------编程问答--------------------
引用 42 楼 xhbmj 的回复:
用外部控件吧,dsoframer.ocx或者点聚的weboffice可以支持在线打开office文档 pdf


鬼哥:这个我试过,貌似只能打开office 的文档,不知道是我写的不对还是什么,怎么打开pdf的哈? --------------------编程问答--------------------
引用 43 楼 caoys316 的回复:
引用 42 楼 xhbmj 的回复:
用外部控件吧,dsoframer.ocx或者点聚的weboffice可以支持在线打开office文档 pdf


鬼哥:这个我试过,貌似只能打开office 的文档,不知道是我写的不对还是什么,怎么打开pdf的哈?

点聚的weboffice可以打开pdf --------------------编程问答-------------------- 点聚的weboffice 看名字应该是office 和pdt 的文档都OK的了?免费的? --------------------编程问答-------------------- 清早出来顶 --------------------编程问答-------------------- JS 下怎么直接打开本地文件

1。因为安全原因js不允许直接与本地文件交互。(当然病毒,网马除外)
2。可以借用控件,比如autovue控件。不过嘛这类控件比较特殊,属于小众群体的控件,所以你的客户愿不愿意装又是一个问题 --------------------编程问答-------------------- autovue相关说明
http://www.evget.com/zh-CN/product/1503/feature.aspx --------------------编程问答--------------------
引用 10 楼 peter200694013 的回复:
引用 9 楼 caoys316 的回复:
Peter 兄弟可否详细点哈,我看你的貌似有戏。。。

System.Diagnostics.Process.Start("d:\\test.txt");
System.Diagnostics.Process.Start("d:\\100道趣题.pdf");

System.Diagnostics.Process.Start(str);
st……

这个是操作服务端的。
用CS还可以。BS没那权限。
这个是需要服务器支持的,
然后就是第三方控件打开。
比如邮箱就有这个功能,豆瓣网可以在线阅读pdf等。 --------------------编程问答-------------------- 帮顶。。。 --------------------编程问答--------------------
引用 6 楼 peter200694013 的回复:
http://topic.csdn.net/u/20090430/00/8d5053b2-6ef9-443e-addc-f5a444909b52.html


   这有  你看看!!! --------------------编程问答-------------------- 打开图片是哪个方法?
就像这个方法是打开文件一样的方法 System.Diagnostics.Process.Start(ur);
我qq 296756750  有知道的告诉我下 谢谢 --------------------编程问答-------------------- 服务端SHELL不了了吧... --------------------编程问答-------------------- 打开本地文件,写个插件得了。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,