欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP 弹出保存对话框

程序员文章站 2022-06-07 17:29:18
...
问题是这样的:
需要保存查询出来的表格置为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;          }      }  } 


这是我最终的方案。