使⽤()控件的saveas⽅法可以将上传⽂件保存到服务器.,JS
中⽤execCommand。。。
开发环境:ASP.NET MVC,其他环境仅供参考。
问题描述:在开发中遇到这样的需求,保存页⾯,通常使⽤JavaScript的saveAs进⾏保存,各浏览器对saveAs⽀持,见下表。
代码⼀:初始保存的代码,只有IE6,7,8⽀持。
function CmdSave() {
var OW = window.open('', "_blank", "");
var DD = new Date();
OW.document.open();
var content = ElementById("content").innerHTML;
OW.document.write(content);
var name = mineName + "-" + $("#selDate").val() + ".htm";
Command("saveAs", false, name);//执⾏保存,IE6,IE7,IE8有效
OW.close();
}
解决⽅案:考虑到下载兼容性好,也能起到保存页⾯的作⽤,故采⽤了先⽣成页⾯,再下载页⾯这样的解决⽅案。
代码⼆:采⽤下载⽅式保存页⾯代码。
function CmdSave() {
var css = "";
var html = ElementById("content").innerHTML;
string返回值var content = css + html;
var name = mineName + "-" + $("#selDate").val() + ".htm";
savePage(content, name);
}
//content 内容 fileName ⽂件名 先在服务器⽣成页⾯,然后再下载⽣成的页⾯
function savePage(content, fileName) {
$.ajax({
type: 'post',
dataType: 'text',
url: 'FXBB/BCYM',
data: {
content: content,
fileName: fileName
},
success: function (result) {
var url = "YXGZ/DBFX/BBCX/FXBB/XZYM?fileName=" + fileName;
var downloadUrl = window.location.protocol + "//" + window.location.host + "/" + url;
window.open(downloadUrl);//下载页⾯
//deleteFile(fileName);
},
matlab傅里叶函数error: function (msg) {
alert("保存出错");
}
});
}
//保存页⾯
jsp中文全称>少儿编程师资培训班public int BCYM(string content, string fileName)
{
string path = System.AppDomain.CurrentDomain.BaseDirectory;
path = Path.Combine(path, @"Upload\FXBB");
//清空保存⽂件⽂件夹⽂件
foreach (string d in Directory.GetFileSystemEntries(path))
unix属于什么软件类型{
if (File.Exists(d))
{
File.Delete(d);
}
}
//⽣成要保存的页⾯
path = System.AppDomain.CurrentDomain.BaseDirectory;
path = Path.Combine(path, "Upload/FXBB/" + fileName);
using (StreamWriter sw = new StreamWriter(path, false, Encoding.UTF8))// File.AppendText(path)) {
sw.WriteLine(content);
sw.Flush();
}
return 1;
}
//下载页⾯
public void XZYM(string fileName)
{
string path = System.AppDomain.CurrentDomain.BaseDirectory;
path = Path.Combine(path, @"Upload\FXBB\" + fileName);
string filePath = path;//Server.MapPath("DownLoad/aaa.zip");//路径
//以字符流的形式下载⽂件
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
//通知浏览器下载⽂件⽽不是打开
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" +
HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.WriteFile(filePath);
}
前端js保存页⾯为图⽚下载到本地
前端js保存页⾯为图⽚下载到本地 ⼿机端点击下载按钮将页⾯保存成图⽚到本地 前端js保存页⾯为图⽚下载到本地的坑 html2canvas 识别svg 解决⽅案 ⽅案 html2canvas.js:可 ...
JSP如何保存页⾯上众多的复选状态
⼀.描述: 最近写的⼀个问题管理模块,录⼊问题时需要选择客户(也就是那些客户存在这些问题),当保存完问题后,再次编辑问题时,如何从数据库⾥读取上次选中的客户并展⽰位勾选状态呢?问题表cust_ques ...
巧⽤location.hash保存页⾯状态
在我们的项⽬中,有⼤量ajax查询表单+结果列表的页⾯,由于查询结果是ajax返回的,当⽤户点击列表的某⼀项进⼊详情页之后,再点击浏览器回退按钮返回ajax查询页⾯,这时⼤家都知道查询页⾯的表单和结果 ...
⽤js把数据从⼀个页⾯传到另⼀个页⾯
⽤js把数据从⼀个页⾯传到另⼀个页⾯的层⾥? 如果是传到新页⾯的话,你⽹站基于什么语⾔开发直接⽤get或者post获取,然后输出到这个层通过url传参 如果是HTML页⾯的话JS传到新页⾯就wind ...
超越Ctrl+S保存页⾯所有资源
如何抓取页⾯所有内容 基本需求 抓取页⾯所有内容主要包括⼀下内容: 页⾯内元素 页⾯元素包含服务
端直接返回的元素,动态构建的元素 页⾯内所有资源 页⾯所有资源包含本页⾯所在域资源以及第三⽅域资源,同主 ...
⼩程序-06-详解介绍.js 逻辑层⽂件-注册页⾯
上⼀篇介绍的是 app.js 逻辑层⽂件中注册程序,对应的每个分页⾯都会有的 js ⽂件中 page() 函数注册页⾯ ⼩程序-06-详解介绍.js 逻辑层⽂件-注册页⾯ 宝典官⽅⽂档: http ...
Vue.js中⽤webpack合并打包多个组件并实现按需加载
对于现在前端插件的频繁更新,所以多多少少要对组件化有点了解,下⾯这篇⽂章主要给⼤家介绍了在Vue.js中⽤webpack合并打包多个组件并实现按需加载的相关资料,需要的朋友可以参考下. 前⾔ 随着 ...
使⽤location.hash保存页⾯状态
hash 属性是⼀个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分). 语法 location.hash 在我们的项⽬中,有⼤量ajax查询表单+结果列表的页⾯,由于查询结果是a ...
java中的de对应JS中⽤decodeURIComponent,js和java编码,解码
⽤get请求传中⽂,经常搞到乱码,这⼏天搞搞这个东西,总结⼀下,以⽅便以后处理这类的问题. Java代码中的de⽅法和JS 的encodeURIComponent功能差不多 ...
随机推荐
Android MMS 之APN
APN的英⽂全称是Access Point Name,中⽂全称叫接⼊点,是您在通过⼿机上⽹时必须配置的⼀个参数,它决定了您的⼿机通过哪种接⼊⽅式来访问⽹络.⽤来标识GPRS的业务种类,⽬前分为两⼤类: ...
Java类的基本运⾏顺序
Hashtable HashMap
Hashtable和HashMap类有三个重要的不同之处.第⼀个不同主要是历史原因.Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接⼝的⼀个实现. ...
【web安全】第五弹:burpsuite proxy模块的⼀些理解
作为⼀只⼩⼩⼩⽩的安全新⼿,只会简单的⽤sqlmap扫扫⽹站,⽤burpsuite的proxy模块拦截⼀些请求.最近⼜对proxy有点⼉⼩理解,记录之.
1. 查看sqlmap注⼊的语句以及HTTP ...
Java多线程之⾮线程安全
在Java多线程中我会重点总结五个如下的技术点: 1.⾮线程安全是如何出现的 2.synchronized对象监视器为Objec时的使⽤
3.synchronized对象监视器为Class时的使⽤ 4 ...
Linux编程实现守护进程
Linux 守护程序 守护进程(Daemon)它是在⼀个特定的过程的背景进⾏.它独⽴于控制终端的和周期性地执⾏某些任务或待某些事件.是⼀种⾮常实⽤的进程. Linux的⼤多数server就是⽤守护进程 ...
[转载] ETL和Kettle
firewall端⼝放⾏
spanx是什么牌子
添加 sudo firewall-cmd --zone=public --add-port=10050/tcp --permanent sudo firewall-cmd --add-port=929 ...
vue-cli3实现分环境打包步骤(给不同的环境配置相对应的打包命令)
在vue-cli3的项⽬中,npm run serve时会把v.NODE_ENV设置为‘development’:npm run build 时会把
cmake:善⽤find_package()提⾼效率暨查JNI⽀持
cmake提供了很多实⽤的cmake-modules,通过find_package()命令调⽤这些modules,⽤于写脚本时⽅便的查依赖的库或其他编译相关的信息,善⽤这 ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论