博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php以及前端的一些小小的技术要点
阅读量:4651 次
发布时间:2019-06-09

本文共 1321 字,大约阅读时间需要 4 分钟。

1. php提供界面,从HBase服务端下载二进制文件。

方案:为了降低系统之前的耦合,前台与后台采取rpc交互方式。采用Thrift封装一个服务,提供下载接口。由于从HBase中读出来就是二进制流,所以php端的Thrift client可以直接接收二进制然后定通过http直接传输到浏览器端。

具体实现方式:

Thrift中有个类型叫做binary,所以这是个突破口。

binary dk_downLoadFileBytes(1:string id)//接口定义

HBase端是byte[] 类型作为该接口的返回值(Java)。php端直接可以将接收的二进制定向到网页,代码如下:

$client = new MyClient;//这个客户端封装了Thrift接口。$client->connect();$file = $client->download($docid);//下载文件,接收二进制$client->close();//下载配置代码header("Content-Encoding: none");header("Content-type: application/octet-stream");header("Accept-Ranges: bytes");header("Content-Transfer-Encoding: binary");//这里需要注意,如果不加上双引号的转义符号,firefox浏览器会不支持包含空格的文件名,会造成下载文件名的切断。header("Content-Disposition: attachment; filename=\"".$filename."\"");header('Pragma: no-cache');header('Expires: 0');//这里要注意,如果不加后面这两句,下载word文件时,打开会出现乱码。需要清空并刷新输出缓冲区。ob_clean();flush();echo $file;//这时就可以下载了,浏览器会弹出窗口。

2. 文本框以及URL(地址栏中)显示特殊某些符号

文本框这个没什么好说的,文本框显示一些特殊符号需要做一些转义处理。比如双引号是quot;

在地址栏中,我们有时候可能会把一些特殊的符号传到下一个页面,然后期望在下一个页面中显示。比如'+'号。这个符号在地址栏中会被转义为%B,而字符串中的空格在地址栏中会显示成+号。比如我们有两个网页a.php和b.php。a.php中有个a标签想要连接到b.php,其中有个参数为str,值为“+” 。我们希望在网页B中正常的显示“+”。所以就要这样一下:str_replace('"','"',str_replace('+','%2B',$myString));。

3. jquery 传递中文字符串出现乱码的问题。

js ajax端: encodeURI(‘your val’);

php端: urldecode($val);

转载于:https://www.cnblogs.com/colorfulkoala/archive/2013/04/21/3033909.html

你可能感兴趣的文章
Linux Supervisor的安装与使用入门
查看>>
创建 PSO
查看>>
JasperReport报表设计4
查看>>
项目活动定义 概述
查看>>
团队冲刺04
查看>>
我的Python分析成长之路8
查看>>
泛型在三层中的应用
查看>>
SharePoint2010 -- 管理配置文件同步
查看>>
.Net MVC3中取得当前区域的名字(Area name)
查看>>
获得屏幕像素以及像素密度
查看>>
int与string转换
查看>>
adb命令 判断锁屏
查看>>
推荐一个MacOS苹果电脑系统解压缩软件
查看>>
1035等差数列末项计算
查看>>
CDMA鉴权
查看>>
ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
查看>>
过滤器与拦截器区别
查看>>
第二阶段站立会议7
查看>>
JAVA多线程
查看>>
delphi 更改DBGrid 颜色技巧
查看>>