php输出文件流到客户端遇到的问题

实际去实现功能,过程虽然痛苦,但是成功的喜悦又是那么引人兴奋。

还是对php不熟,买的清华的书也到了,可以重头到尾夯实下基础,作为服务端程序,执行逻辑功能的重要语言,还是有必要把中级技能拿到手。

php两种输出文件的方式,一种超链接,一种数据流。

先选了数据流,将python执行完的word文件输出到客户端,但是一直报xml错误。

自己的php里面有一部分响应表单传入参数的代码,然后是调用python的代码,最后是输出文件的代码,测试了服务器上的文件格式没有问题,单独用一个php做文件流输出,下载下来的文件也没问题。但是当把执行python和输出文件流的代码都放进php,就提示xml错误,虽然word能修复打开,但是体验感很受影响。

看了下书,可以采用输出href的方式,所以:

在执行python的php中,echo一个href,href指向另一个输出文件的php。

        echo "<a href='output.php' title=''>下载生成的文件</a>";

这样在output.php中即可做输出文件流的方法,又可以做输出后删除服务器上文件的方法。

当然,直接在python的php里echo文件的href好像也行,但是由于在同一页面,不清楚用户什么时候下载,也没法去删除服务器上下完的文件。不然会造成文件堆积,所以还是输出一个新php的链接,在链接里做流输出和清文件的工作,让下载和清除绑定在一个php中。


可能过两周再来看这个问题,会觉得很简单或者有更好的办法,但是现在是用已知有限的知识,想尽办法来解决困难,对思路的锻炼仍然很重要。话说回来,今天遇到一个以前解决的Python问题,虽然水平已经提高很多,但是竟然也要翻以前的博客,再看当时的思路,而且最后感叹那个时刻真的是天才。为了那个问题煎熬了两周,中间穿插了3个通宵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Adminers 是一款PHP在线MYSQL管理端,本工具沿于adminer项目,感谢原开发组的设计理念。adminrs当然是二次开发版。工具可以纳入各web程序中,如discuz,cms,企业网站,避免平时管理 mysql 需要登录 phpmyadmin 输入密码等繁琐工作,工具仅有一个php文件,集成文档清晰明了,非常人性化。 版本历史: 1.1.0更新日志: A: 修复所有的函数,常量,类名冲突,由于是内嵌模式,假如函数名与原程序同名,即会产生冲突,包换常量,类名等,本次更新将所有的函数,常量,类名都改了,理论上讲99%不会出现命名冲突。具体数据可以在回调函数中查阅。 B: 监控日志功能完善,在未开启debug模式下,所有非严重异常错误,均不再直接显示信息了,转而释放进浏览器的 header中,可用浏览器工具查看。当遇到严重问题是,他仍然会直接中断并且输出错误。 C: API接口参数不再使用常量,常量命名主要是难记。现在改为Adminers类,实例化之后,可以打印所有属性值 一一配置即可,后期也好扩展。 D: 增加连接方式配置,pdo,none 两种,非 pdo 即 none。增加 callback 回调函数配置,定义一个函数名,每次工作完成后,它就会访问一次,无论发生什么情况。参数只有一个,参数值包括了adminers工作的所有信息。 其它细节修复。 Adminers 1.1.5正式发布. 10:34:28 更新日志: 1: 兼容PHP7.0版本环境下使用, 基本上也没什么大问题, 修复得很迅速. 2: 在mysql不指定库访问时, 默认将隐藏一些内置库, 如information_schema,mysql,performance_schema, phpmyadmin, sys等. 可通过左下的完整按钮使之还原. 根据用户使用习惯来分析, 这几个库一般不会去查看或者修改, 那有什么必要默认显示? 3: 其它核心细节修复.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值