首页 > 代码库 > php中关于js保存文件至本地的问题
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="http://www.mamicode.com/+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;?>
php中关于js保存文件至本地的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。