php中关于js保存文件至本地的问题

最近在搞一个livezilla的在线客服聊天的东东,客户界面要求添加一个下载聊天记录的功能。于是我就是翻看了下网上的各种关于”js保存文件至本地“的资料,发现只能在IE下通过execCommand实现。于是又是一番折腾啊。言归正传,下面开始上正餐。

html标签

<td <!--FU_HIDDEN-->><a id="download"   target="_blank" ><img class="lz_chat_clickable_image" onclick="top.savefile();" src="./images/button_file.gif" border="0" title="<!--lang_client_save_file-->" alt="<!--lang_client_save_file-->"></a></td>

js函数

function savefile()
{
	var result=‘‘;
	var iframe = window.frames["lz_chat_frame.3.2"];
	var chatframe =iframe.document.all["lz_chat_frame.3.2.chat.4.0"].contentWindow.document;
	var topframe=iframe.document.all["lz_chat_frame.3.2.chat.0.0"].contentWindow.document;
	//text是从页面上获取到的聊天信息
	var text = chatframe.getElementById(‘lz_chat_main‘).innerText;
	//对标签添加连接属性及其值
	topframe.getElementById(‘download‘).setAttribute("href","./chatnote.php?data="+text);
}
    

方式一:通过一个a标签,已get方式将数据传到服务端,然后服务端新建文件,保存传过来的内容,然后读取文件内容,最近进行下载操作。此方式主要是为了我熟悉一下php的新建文件和读取文件。要是你需要直接下载的话,请查看第二种方式。

php代码

<?php 

 $dirname = date(‘Ymd‘,time());
 $filename =date(‘YmdHis‘,time());
 //在chatrecord目录下创建命名为当前日期的文件夹
 $filepath = "chatrecord/".$dirname;
mk_dir($filepath);
// 循环创建目录
function mk_dir($dir, $mode = 0755)
{
if (is_dir($dir) || @mkdir($dir,$mode)) return true;
if (!mk_dir(dirname($dir),$mode)) return false;
return @mkdir($dir,$mode);
}
//获取内容
header(‘Content-Type:text/html; charset=utf-8‘);
$backValue=$_GET[‘data‘];
$filename = ‘chatrecord/‘.$dirname.‘/‘.$filename.‘.txt‘;
//将内容写入文件
$myfile = fopen($filename, "w") or die("Unable to open file!");
fwrite($myfile, $backValue);
fclose($myfile);
$filesize   =   filesize($filename);
$now =date(‘His‘,time());
$downfilename =‘客服记录‘.$now.‘.txt‘;//下载的文件名
header( "Content-Type:   application/force-download ");
header( "Content-Disposition:   attachment;   filename=".$downfilename);
header( "Content-Length:   ".$filesize);
$data   =  file_get_contents($filename);//获取文件内容
echo   $data;

?>

方式二:不在服务端保存文件,直接下载文件

<?php
//获取内容
header(‘Content-Type:text/html; charset=utf-8‘);
$backValue=$_GET[‘data‘];
$now =date(‘His‘,time());
$downfilename =‘客服记录‘.$now.‘.txt‘;//下载的文件名
header( "Content-Type:   application/force-download ");
header( "Content-Disposition:   attachment;   filename=".$downfilename);
$data   =  $backValue;//获取文件内容
echo   $data;
?>
时间: 2024-07-31 21:58:05

php中关于js保存文件至本地的问题的相关文章

js 保存文件到本地

原文http://blog.163.com/[email protected]/blog/static/87727415201310975054613/ js 保存文件到本地 2013-11-09 19:56:35| 分类: 默认分类 |举报|字号 订阅 var obj_target = document.createElementNS('http://www.w3.org/1999/xhtml', 'a'); if(obj_target)//非ie { obj_target.href = ‘1

大开测试:性能- 如何下载并保存文件到本地(连载18)

7.18  如何下载并保存文件到本地 1.问题提出 如何下载并保存文件到本地? 2.问题解答 一个人事管理系统项目一般都要实现能够上传和下载电子文件(如学位照.身份证.护照或者其他Word.Excel.Pdf等格式的电子文件),测试时为了模拟下载的场景,需要编写相关脚本.在HTTP中,没有任何一个方法或是动作能够标识“下载文件”这个动作,对HTTP来说,无论是下载文件或者请求页面,都只是发出一个GET请求,LoadRunner记录了客户端发出的对文件的请求,并能够收到文件内容.因此,完全可以通过

Eclipse中使用GIT提交文件至本地

GIT提交文件至本地: 1.  右击项目--Team--Commit-: 2.在弹出的Commit Changes框中--选择要提交的文件--填写提交说明--点击Commit,即可提交至本地. 原文地址:https://www.cnblogs.com/Big-Boss/p/9493692.html

Js下载文件到本地(兼容多浏览器)

在客户端通过js下载文件,试过几种下载方式,iframe方式仅限于IE浏览器,window.open(url),location.href=url 这两种方式在chrome浏览器还会是直接打开文件而不是下载,百度N久没有结果,在谷歌还是找到答案了,下载链接在此. window.downloadFile = function (sUrl) { //iOS devices do not support downloading. We have to inform user about this. i

Django项目中引用js,css文件的可行方法

首先,在manager.py同层级下创建static文件夹, 里面放上css , js, image等文件或者文件夹 第二,在项目同名的app中settings文件末尾添加以下内容: STATIC_URL = '/static/' HERE = os.path.dirname(os.path.abspath(__file__)) HERE = os.path.join(HERE, '../') STATICFILES_DIRS = ( # Put strings here, like "/hom

c# 通过地址下载流然后保存文件到本地

private void GetFileFromNetUrl(string url) { try { System.Net.WebRequest req = System.Net.WebRequest.Create(url); req.Method = "GET"; //获得用户名密码的Base64编码 添加Authorization到HTTP头 不需要的账号密码的可以注释下面两行代码 string code = Convert.ToBase64String(Encoding.ASCI

ASP.NET—016:ASP.NET中保存文件对话框

本想在asp.net中使用savediallog保存文件,结果提示:当应用程序不是以 UserInteractive 模式执行时显示模式对话框或窗口是无效操作. 在ASP.NET中使用例如以下方式.保存文件.以下样例,保存一个excel文件. Response.ContentType = @"application/x-xls"; Response.AppendHeader("Content-Disposition", "attachment; filen

ssm 整合中js,css 文件无法引入

问题:ssm 整合中第三方 js,css 文件无法引入 检查:ssm 整合配置完好 无拦截器拦截 spring mvc  静态资源已配置 编译时可以直接跳转到js  css 问题发现 js  css 文件放在WEB-INF 下,导致无法引入 解决 js  css 文件放在webapp 下,可以引入 原文地址:https://www.cnblogs.com/jsbk/p/9461374.html

vscode 提示 Running save participants 无法保存文件

今天vscode提示一直在running save participants...中,无法保存文件 control + shift + p打开面板后,输入Reload with extensions disabled. 可以暂时解决问题(暂时解决的原因是可以进行保存文件等操作,虽然后续仍会出现running save participants的提示,但直接点击cancel即可继续coding.最近github上有很多关于这个的问题,但还没有找到好的解决方案,持续关注中=.=) 原文地址:http