PHP 弹出保存对话框

Jaeson_Chen 2015-01-01 09:41:04
问题是这样的:
需要保存查询出来的表格置为Excel,关于写入内容到Excel都已经完成,
主要是:1、点击导出为Excel时,希望弹出一个保存路径的选择框;
2、希望是在PHP来控制弹出,而不是前台;
3、实在是由JS弹出,是不是将文件路径作为参数提交到PHP处理?

由于分数不多,不好意思。
...全文
369 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jaeson_Chen 2015-01-15
  • 打赏
  • 举报
回复
$objWriter->save( $fileName );  
download( $fileName, true,false );
//exit();
function download( $fileName, $delDesFile = false, $isExit = true ) {
if ( file_exists( $fileName ) ) {
header( 'Content-Description: File Transfer' );
header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment;filename = ' . basename( $fileName ) );
header( 'Content-Transfer-Encoding: binary' );
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check = 0, pre-check = 0' );
header( 'Pragma: public' );
header( 'Content-Length: ' . filesize( $fileName ) );
ob_clean();
flush();
readfile( $fileName );

if ( $delDesFile ) {
unlink( $fileName );
}
if ( $isExit ) {
exit;
}
}
}


这是我最终的方案。
Jaeson_Chen 2015-01-15
  • 打赏
  • 举报
回复
引用 9 楼 dcxy0 的回复:
引用 8 楼 Bicycle_0 的回复:
假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已
赞同,要是这样你就还要考虑如果用户不是用windows呢?
所以我最终做的是通过浏览器下载的形式,不管系统[常规的系统]如何,至少可以有浏览器吧。
Jaeson_Chen 2015-01-15
  • 打赏
  • 举报
回复
引用 8 楼 Bicycle_0 的回复:
假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已
所以我的需求是:希望能够有一个路径选择的过程!而不是自定义下载保存路径。
Bicycle_0 2015-01-13
  • 打赏
  • 举报
回复
假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已
JPF1024 2015-01-13
  • 打赏
  • 举报
回复
引用 8 楼 Bicycle_0 的回复:
假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已
赞同,要是这样你就还要考虑如果用户不是用windows呢?
Jaeson_Chen 2015-01-10
  • 打赏
  • 举报
回复
我仔细询问了多个PHPer 目前应该是做不到弹出路径选择框,只能退而求其次,显示为下载模样,代码稍后给大家贴出。敬谢!
Jaeson_Chen 2015-01-10
  • 打赏
  • 举报
回复
引用 4 楼 yjyuyu96 的回复:
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php2excel.xls");
echo iconv("UTF-8", "GBK", "姓名") . "\t" . iconv("UTF-8", "GBK", "性别") . "\n";
foreach ($get as $key => $value) {
echo iconv("UTF-8", "GBK", $value["username"]) . "\t" . iconv("UTF-8", "GBK", $value["sex"]) . "\n";
}
行不通!
Jaeson_Chen 2015-01-10
  • 打赏
  • 举报
回复
引用 3 楼 A9925 的回复:
那你直接给个文件链接 试试
可以具体一点么?因为我是需要后台再去查询数据库,然后据所得的内容填充到EXCEL。
yjyuyu96 2015-01-09
  • 打赏
  • 举报
回复
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php2excel.xls");
echo iconv("UTF-8", "GBK", "姓名") . "\t" . iconv("UTF-8", "GBK", "性别") . "\n";
foreach ($get as $key => $value) {
echo iconv("UTF-8", "GBK", $value["username"]) . "\t" . iconv("UTF-8", "GBK", $value["sex"]) . "\n";
}
  • 打赏
  • 举报
回复
那你直接给个文件链接 试试
Jaeson_Chen 2015-01-07
  • 打赏
  • 举报
回复
引用 1 楼 A9925 的回复:
http://www.cnblogs.com/zcy_soft/archive/2011/06/09/2076728.html
这个完全与我的需求不对,而且,我的需求是:点击【导出为Excel】 直接弹出路径选择框, 或者是直接下载也行,但是要浏览器端下载
  • 打赏
  • 举报
回复
http://www.cnblogs.com/zcy_soft/archive/2011/06/09/2076728.html

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧