备注:内容仅提供参考。

⒈添加引用:using Gecko;

⒉然后根据自己的情况在某个方法内添加事件:

        LauncherDialog.Download += new EventHandler<LauncherDialogEvent>(OnDownloadFile);

⒊再声明方法:

private void OnDownloadFile(objectsender, LauncherDialogEvent e){nsILocalFile objTarget= Xpcom.CreateInstance<nsILocalFile>("@mozilla.org/file/local;1");using (nsAString tmp = new nsAString(@Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\temp.tmp")){objTarget.InitWithPath(tmp);}//Save file dialog
Stream myStream;System.Windows.Forms.SaveFileDialog saveFileDialog1= newSystem.Windows.Forms.SaveFileDialog();saveFileDialog1.Filter= "All files (*.*)|*.*";saveFileDialog1.FilterIndex= 2;saveFileDialog1.RestoreDirectory= true;saveFileDialog1.FileName=e.Filename;if (saveFileDialog1.ShowDialog() ==System.Windows.Forms.DialogResult.OK){if ((myStream = saveFileDialog1.OpenFile()) != null){nsIURI source=IOService.CreateNsIUri(e.Url);nsIURI dest= IOService.CreateNsIUri(newUri(@saveFileDialog1.FileName).AbsoluteUri);nsAStringBase t= (nsAStringBase)newnsAString(System.IO.Path.GetFileName(@saveFileDialog1.FileName));nsIWebBrowserPersist persist= Xpcom.CreateInstance<nsIWebBrowserPersist>("@mozilla.org/embedding/browser/nsWebBrowserPersist;1");persist.SaveURI(source,null, null, null, null, (nsISupports)dest, null);nsIDownloadManager DownloadMan= null;DownloadMan= Xpcom.CreateInstance<nsIDownloadManager>("@mozilla.org/download-manager;1");nsIDownload download= DownloadMan.AddDownload(0, source, dest, t, e.Mime, 0, null, (nsICancelable)persist, false);if (download != null){persist.SetPersistFlagsAttribute(2 | 32 | 16384);persist.SetProgressListenerAttribute((nsIWebProgressListener)download);persist.SaveURI(source,null, null, null, null, (nsISupports)dest, null);}myStream.Close();}}}

转载于:https://www.cnblogs.com/RedSky/p/5626006.html

c#geckofx文件流下载相关推荐

  1. 前端通过后端返回文件流下载文件

    // 把文件流下载下来 const downloadMethods = (name, res) => {const blob = new Blob([res.data], { type: 'ap ...

  2. IE浏览器报错Unhandled promise rejection Error: 拒绝访问。文件流下载

    项目内有很多导出文件,下载文件功能,前端采用的是文件流下载方式,请求后端接口,返回文件流. 最开始不清楚普通的动态创建a标签方法并不兼容IE,后来在IE上面测试出现了bug "Unhandl ...

  3. 阿里OSS文件流下载问题

    阿里OSS文件流下载问题 阿里OSS获取文件流,因为是网络传输流,所以ossObject.getObjectContent().available()不能一次性获取文件大小:传回的文件流,如果一次读取 ...

  4. vue 将文件url 改成文件流下载

    vue 将后台返回文件url 改成文件流下载 由于直接a 标签下载视频,音频会打开新的窗口,所以改用文件流下载 一.图片 exportData(row) {console.log('row', row ...

  5. 文件流下载ppt文件无法打开或文件已损坏

    在项目中遇到"文件流下载ppt文件无法打开或文件已损坏"这种情况,我也是查阅资料来一个排查问题的汇总 1.要设置responseType,在接口传参的时候传参过去 2.注意接口返回 ...

  6. byte转文件流 下载到本地

    此方法将byte类型文件转为文件流保存到本地 byte 经过BASE64Decoder 进行编码之后的类型 所以需要解码 防止出现乱码及文件损毁 /*** byte 转文件 下载到本地* @param ...

  7. ASP.NET 实现Base64文件流下载PDF

    因为业务需要调用接口获取的是 Base64文件流 需要提供给客户下载PDF文档 源码部分借鉴网上,具体地址忘记了. //Base64文件流 byte[] buffer = Convert.FromBa ...

  8. vue-axios下载文件流blob,ie下载报传递给系统调用的数据区域太小.ie文件流下载报错;文件下载失败将blob的错误信息转换成json格式

    本次下载是后台文件流传输,前端下载,前端将拿到的下载id和名称downloadName传递给下载方法:如果是多个下载,可以采用数组for循环 情景描述: 1.如果符合导出条件, 后端直接返回数据流,如 ...

  9. java文件流下载excel_React获取Java后台文件流下载Excel文件

    记录使用blob对象接收java后台文件流并下载为xlsx格式的详细过程,关键部分代码如下. 首先在java后台中设置response中的参数: public void exportExcel(Htt ...

最新文章

  1. python pexpect包的一些用法
  2. Java 里的 for (;;) 与 while (true),哪个更快?
  3. Linux Shell 脚本知识点
  4. 一维数组转单字段DataTable
  5. (21) java web的struts2框架的使用-Action实现的三种方式
  6. Could not find result map
  7. DMN结合bpmn简化流程_07
  8. JAVA EE 6 jar包集合_Java EE6将JSF facelets(xhtml)和ManagedBeans打包成JAR
  9. 企业域名备案流程_2021境外投资备案申报流程(办理企业境外投资证书注意事项)...
  10. css a4纸_一把刀、一张2毛钱的纸,刻出的动物太逼真,一幅卖上千美元
  11. php定位和天气,php – 根据用户所在地显示天气
  12. AI技术如何做工程?
  13. 串口硬盘如何应用于并口硬盘计算机,并口硬盘和串口硬盘的区分与看图学习电脑硬盘的安装...
  14. 什么是PaaS云平台?
  15. ESP32烧录Arduino生成的bin文件
  16. 聚合支付PC端-银联扫码支付
  17. php界面入门,web前端入门:一小时学会写页面 - 空酷狗
  18. 怎样用c语言编程解多元方程组,求用C#编程实现:求一个多元一次方程组解
  19. [七七黎]乱七八糟-美女和野兽
  20. 洛克耶是如何发现氦元素的?

热门文章

  1. 前端面试题——HTML基础篇
  2. webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server - QxQstar - 博客园
  3. 网站性能优化--CRP
  4. [Java核心技术(卷I)] - 简易的日历
  5. 长春理工大学第十四届程序设计竞赛(重现赛)F.Successione di Fixoracci
  6. SQL疑难杂症【4 】大量数据查询的时候避免子查询
  7. python进阶10 MySQL补充 编码、别名、视图、数据库修改
  8. DAY5-小别-2018-1-15
  9. Centos安装Vmware-Tools工具
  10. 《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制...