c#geckofx文件流下载
备注:内容仅提供参考。
⒈添加引用: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文件流下载相关推荐
- 前端通过后端返回文件流下载文件
// 把文件流下载下来 const downloadMethods = (name, res) => {const blob = new Blob([res.data], { type: 'ap ...
- IE浏览器报错Unhandled promise rejection Error: 拒绝访问。文件流下载
项目内有很多导出文件,下载文件功能,前端采用的是文件流下载方式,请求后端接口,返回文件流. 最开始不清楚普通的动态创建a标签方法并不兼容IE,后来在IE上面测试出现了bug "Unhandl ...
- 阿里OSS文件流下载问题
阿里OSS文件流下载问题 阿里OSS获取文件流,因为是网络传输流,所以ossObject.getObjectContent().available()不能一次性获取文件大小:传回的文件流,如果一次读取 ...
- vue 将文件url 改成文件流下载
vue 将后台返回文件url 改成文件流下载 由于直接a 标签下载视频,音频会打开新的窗口,所以改用文件流下载 一.图片 exportData(row) {console.log('row', row ...
- 文件流下载ppt文件无法打开或文件已损坏
在项目中遇到"文件流下载ppt文件无法打开或文件已损坏"这种情况,我也是查阅资料来一个排查问题的汇总 1.要设置responseType,在接口传参的时候传参过去 2.注意接口返回 ...
- byte转文件流 下载到本地
此方法将byte类型文件转为文件流保存到本地 byte 经过BASE64Decoder 进行编码之后的类型 所以需要解码 防止出现乱码及文件损毁 /*** byte 转文件 下载到本地* @param ...
- ASP.NET 实现Base64文件流下载PDF
因为业务需要调用接口获取的是 Base64文件流 需要提供给客户下载PDF文档 源码部分借鉴网上,具体地址忘记了. //Base64文件流 byte[] buffer = Convert.FromBa ...
- vue-axios下载文件流blob,ie下载报传递给系统调用的数据区域太小.ie文件流下载报错;文件下载失败将blob的错误信息转换成json格式
本次下载是后台文件流传输,前端下载,前端将拿到的下载id和名称downloadName传递给下载方法:如果是多个下载,可以采用数组for循环 情景描述: 1.如果符合导出条件, 后端直接返回数据流,如 ...
- java文件流下载excel_React获取Java后台文件流下载Excel文件
记录使用blob对象接收java后台文件流并下载为xlsx格式的详细过程,关键部分代码如下. 首先在java后台中设置response中的参数: public void exportExcel(Htt ...
最新文章
- python pexpect包的一些用法
- Java 里的 for (;;) 与 while (true),哪个更快?
- Linux Shell 脚本知识点
- 一维数组转单字段DataTable
- (21) java web的struts2框架的使用-Action实现的三种方式
- Could not find result map
- DMN结合bpmn简化流程_07
- JAVA EE 6 jar包集合_Java EE6将JSF facelets(xhtml)和ManagedBeans打包成JAR
- 企业域名备案流程_2021境外投资备案申报流程(办理企业境外投资证书注意事项)...
- css a4纸_一把刀、一张2毛钱的纸,刻出的动物太逼真,一幅卖上千美元
- php定位和天气,php – 根据用户所在地显示天气
- AI技术如何做工程?
- 串口硬盘如何应用于并口硬盘计算机,并口硬盘和串口硬盘的区分与看图学习电脑硬盘的安装...
- 什么是PaaS云平台?
- ESP32烧录Arduino生成的bin文件
- 聚合支付PC端-银联扫码支付
- php界面入门,web前端入门:一小时学会写页面 - 空酷狗
- 怎样用c语言编程解多元方程组,求用C#编程实现:求一个多元一次方程组解
- [七七黎]乱七八糟-美女和野兽
- 洛克耶是如何发现氦元素的?
热门文章
- 前端面试题——HTML基础篇
- webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server - QxQstar - 博客园
- 网站性能优化--CRP
- [Java核心技术(卷I)] - 简易的日历
- 长春理工大学第十四届程序设计竞赛(重现赛)F.Successione di Fixoracci
- SQL疑难杂症【4 】大量数据查询的时候避免子查询
- python进阶10 MySQL补充 编码、别名、视图、数据库修改
- DAY5-小别-2018-1-15
- Centos安装Vmware-Tools工具
- 《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制...