当前位置: 首页 > news >正文

网站建设一般的长宽广州网页设计

网站建设一般的长宽,广州网页设计,可以制作试卷的app,免费域名申请个人网站重点在 启用文件下载 和 通过 JavaScript 调用 C# 保存文件: 1. 添加文件下载处理器 (DownloadHandler) 在 VueFormService 类中,添加一个实现 IDownloadHandler 接口的类,用于处理文件下载到本地。 // 新增的 DownloadHandler 类 public c…

重点在 启用文件下载通过 JavaScript 调用 C# 保存文件


1. 添加文件下载处理器 (DownloadHandler)

VueFormService 类中,添加一个实现 IDownloadHandler 接口的类,用于处理文件下载到本地。

// 新增的 DownloadHandler 类
public class DownloadHandler : IDownloadHandler
{public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback){// 设置默认保存路径(例如保存到 Downloads 文件夹)string savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads", downloadItem.SuggestedFileName);callback.Continue(savePath, showDialog: false); // showDialog: true 会弹出保存对话框}public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback){// 下载状态更新(例如进度、完成通知)if (downloadItem.IsComplete){MessageBox.Show($"文件已保存到:{downloadItem.FullPath}");}}
}

2. LoadVuePage 方法中绑定下载处理器

在初始化浏览器时,设置 DownloadHandler 属性。

public static void LoadVuePage(VueBaseForm vueForm, string subFolder = "")
{// ... 其他代码 ...ChromiumWebBrowser browser = new ChromiumWebBrowser(url);vueForm.browser = browser;// 添加下载处理器browser.DownloadHandler = new DownloadHandler();  // <-- 新增代码vueForm.Controls.Add(browser);browser.Dock = DockStyle.Fill;// ... 其他代码 ...
}

3. 添加 JavaScript 调用 C# 保存文件的功能

RegisterHander 方法中,注册一个供 JavaScript 调用的对象,用于直接保存文件内容。

(1) 新增 FileSaveHandler
public class FileSaveHandler
{public void SaveFile(string fileName, string content){string savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads", fileName);File.WriteAllText(savePath, content);MessageBox.Show($"文件已保存到:{savePath}");}
}
(2) 修改 RegisterHander 方法
public static void RegisterHander(VueBaseForm vueForm)
{ChromiumWebBrowser browser = vueForm.browser;// 注册文件保存处理器browser.JavascriptObjectRepository.Register("fileSaver", new FileSaveHandler(), isAsync: false, options: BindingOptions.DefaultBinder);  // <-- 新增代码// ... 其他原有注册代码 ...
}

4. JavaScript 调用示例

在 Vue 页面中,通过 fileSaver 对象调用 C# 的 SaveFile 方法:

// 示例:点击按钮保存文件
function saveFile() {const content = "Hello, this is a saved file!";fileSaver.saveFile("example.txt", content);
}

完整代码整合后的修改点

修改后的 VueFormService
using CefSharp;
using CefSharp.WinForms;
using CefSharpVue;
using CefSharpVue.Core.Utils.Winform;
using CefSharpVue.Hander;
using DPI_Ter.Vue;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Windows.Forms;namespace CefSharpVue
{public class VueFormService{// ... 其他原有代码 ...public static void LoadVuePage(VueBaseForm vueForm, string subFolder = ""){// ... 其他代码 ...ChromiumWebBrowser browser = new ChromiumWebBrowser(url);vueForm.browser = browser;// 绑定下载处理器browser.DownloadHandler = new DownloadHandler();  // <-- 新增代码vueForm.Controls.Add(browser);browser.Dock = DockStyle.Fill;// ... 其他代码 ...}public static void RegisterHander(VueBaseForm vueForm){ChromiumWebBrowser browser = vueForm.browser;// 注册文件保存处理器browser.JavascriptObjectRepository.Register("fileSaver", new FileSaveHandler(), isAsync: false, options: BindingOptions.DefaultBinder);  // <-- 新增代码// ... 其他原有注册代码 ...}// ... 其他原有代码 ...}// 新增的 DownloadHandler 类public class DownloadHandler : IDownloadHandler{public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback){string savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads", downloadItem.SuggestedFileName);callback.Continue(savePath, showDialog: false);}public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback){if (downloadItem.IsComplete){MessageBox.Show($"文件已保存到:{downloadItem.FullPath}");}}}// 新增的 FileSaveHandler 类public class FileSaveHandler{public void SaveFile(string fileName, string content){string savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads", fileName);File.WriteAllText(savePath, content);MessageBox.Show($"文件已保存到:{savePath}");}}
}

功能说明

  1. 文件下载

    • 当页面触发下载(例如 <a download> 链接或 JavaScript 下载),文件会自动保存到用户的 Downloads 文件夹。
    • 通过 DownloadHandler 类控制保存路径和下载完成通知。
  2. JavaScript 调用 C# 保存文件

    • 在 Vue 页面中,通过 fileSaver.saveFile(fileName, content) 直接调用 C# 方法保存文本文件。
    • 文件默认保存到 Downloads 文件夹,路径可自定义。

安全性提示

  • 如果允许用户自定义保存路径,建议通过 FolderBrowserDialogSaveFileDialog 让用户选择路径。
  • 启用本地文件访问时,需谨慎处理潜在的安全风险(例如恶意脚本写入文件)。
http://www.dtcms.com/a/472433.html

相关文章:

  • 资讯门户网站 dede房地产市场规模
  • 网站icp备案信息是什么做网站 视频
  • 网站开发语言有php做php网站会员开店代码如何编写
  • 微信手机网站app制作润滑油网站建设
  • 东莞莞城网站建设公司网站建设手机端官网
  • 宁波南部商务区网站建设河北网络建站
  • 建设部执业考试网站wordpress模板开发文档
  • 张家港做企业网站wordpress视频滑块
  • 网站开发文本编辑器购物网站后台管理系统
  • dedecms 百度网站地图抖音生活服务旅行社ota入驻
  • 培训网站模板洛阳便宜网站建设公司
  • 网站建设数据库怎么选择网站推广邮箱怎么做
  • 郑州网站建设技术支持wordpress个人博客动漫主题
  • 电子商务网站的建设的步骤wordpress 顶部栏 悬浮
  • 阿里云网站建设 部署与发布长春cms建站
  • 两学一做微网站交流中铁建设团门户网登录入口
  • 做网站封面要怎么做做古风头像的网站
  • 济南网站技术响应式手机网站
  • 网站建设后台编程wordpress评论表情
  • w3c网站代码标准规范wordpress安装 windows
  • 网站页面优化公告wordpress 在线知识库
  • 网站管理员权限家装设计培训班哪里有
  • 中山快速做网站公司移动互联网开发招人
  • 东莞网站设计公司哪家好空间设计网站推荐
  • RabbitMQ核心机制解析
  • 网站推广的方法和技巧专门做spa的网站
  • 在家做兼职的正规网站平台郑州博大泌尿外科医院
  • 品牌网站建设 结构公司网站建立教程
  • 玩具网站 下载wordpress 链接小图标
  • 风景区介绍网站建设市场分析网站建设汇编资料