热搜:NVER node 开发 php

PHP 弹出保存对话框

2024-08-13 17:45:02
PHP 弹出保存对话框

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

由于分数不多,不好意思。


回复讨论(解决方案)

http://www.cnblogs.com/zcy_soft/archive/2011/06/09/2076728.html

http://www.cnblogs.com/zcy_soft/archive/2011/06/09/2076728.html



这个完全与我的需求不对,而且,我的需求是:点击【 导出为Excel】 直接弹出路径选择框,
或者是直接下载也行,但是要浏览器端下载

那你直接给个文件链接 试试

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";}

那你直接给个文件链接 试试


可以具体一点么?因为我是需要后台再去查询数据库,然后据所得的内容填充到EXCEL。

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";}



行不通!

我仔细询问了多个PHPer 目前应该是做不到弹出路径选择框,只能退而求其次,显示为下载模样,代码稍后给大家贴出。敬谢!

假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已

假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已

赞同,要是这样你就还要考虑如果用户不是用windows呢?

假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已



所以我的需求是:希望能够有一个路径选择的过程!而不是自定义下载保存路径。


假设如果你能定义了下载保存路径为E盘而用户只有D盘怎么解?所以只能由用户选择存哪里,不过你可以定义保存的文件名,但是不能定义保存路径! 个人理解而已

赞同,要是这样你就还要考虑如果用户不是用windows呢?



所以我最终做的是通过浏览器下载的形式,不管系统[常规的系统]如何,至少可以有浏览器吧。

$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;          }      }  } 


这是我最终的方案。