PHPExcel上传sae遇到: -1:fail to get xml content
在用PHPExcel1.8.0来处理excel时,本地测试时好使的,但是要把代码部署到SAE,在上传代码的时候就会遇到这个问题。
部署代码中遇到问题: -1:fail to get xml content
在网上查了下,好多人在用wordpress和weiPHP的时候也遇到了这个问题,解决办法是,用wordpress for sae,weiPHP也是修改那什么代码,对PHPExcel没什么参考价值。暂时我也不知道这个问题对自己的应用有什么影响,所以暂且略过。
在结束部署之后,访问页面的时候,在需要excel处理的地方,就会报错

报错说是找不到XMLWriter这个类。我在PHPExcel的源代码里找,也确实没有找到这个类的定义,只有对这个类的扩展。
这应该就是之前那个错误造成的影响。
网上有人说这个问题是PHP的版本不支持,我信了。
去sae的应用管理里看了下,是PHP5.3,版本不支持应该是版本太旧了吧,所以我就删掉了旧的应用,新建了个PHP5.6的应用。但是上传代码,还是fail to get xml content这个问题。我就呵呵了。
有人说,上传代码包有问题,就有吧,部署后在本地把正确代码用git或svn提交下。我半信半疑,试了下,果然没什么用。
有人说,要把Excel2007改成Excel5,我信了。我就去把代码改了,然后把excel文档的格式也从xlsx改成了xls来适配。结果还是报没找到XMLWriter这个错。
百度不行,我用google,结果又遇到相同问题的人,但没有解决办法的答案。在我一筹莫展的时候,终于找到了一个可以参考的办法。
错误为:Class 'XMLWriter' not found
FILE: ThinkPHP/Extend/Vendor/Excel/PHPExcel/Shared/XMLWriter.php LINE: 44
检查了下,本地一切正常。本地php扩展有xmlwriter,saw扩展有xml。请教如何破?jorbin2014年06月30日
只要phpexcel的版本支持xml扩展即可,我用的是1.7.2
来自 <http://www.thinkphp.cn/topic/12201.html>
如上,解决办法是要PHPExcel的版本支持xml扩展。我信了,所以我就去PHPexcel那里下了个他说好使的1.7.2版本。然后删除掉代码里原有的1.8.0,替换成了1.7.2。代码里的一切也都保持是Excel5。然后重新用git提交,把新代码提交上去。这么一来,果然没有报找不到XMLWriter的错了。
但是又报了一个找不到写excel5的类的问题。同样的,我现在源代码里按规律找有没有这个类,还真有,直接包含引用就行了。再一试果然没这个问题了。开心。(应该会有一个新的错误,就是对文件的读写错误,如果和我一样之前并没有意识到sae使用storage来处理文件的话,这个问题在另一篇里解决)
总结下,就我上传使用PHPexcel的应用遇到的这个问题可能是PHPExcel的版本问题吧。所以我们得规避这个问题,用一个支持扩展xml的版本。也就是1.7.2(测试好用)。
PHPExcel上传sae遇到: -1:fail to get xml content的更多相关文章
- 把php上传sae问题要使用IO
应用移植指南 一,为什么要移植应用 SAE禁止IO写操作,代码目录不能写入.这意味着普通程序的上传图片.生成缓存等操作都不能在SAE上正常运行,这时候你需要对这些代码进行修改后才能让你的程序运行在SA ...
- 使用phpexcel上传下载excel文件
1. 下载 <?php /** * Created by lonm.shi. * Date: 2012-02-09 * Time: 下午4:54 * To change this templat ...
- 关于PHPExcel上传Excel单元格富文本和时间类型读取数据问题
当用PHPExcel做Excel上传文件读取数据时,print_r出来的数据,竟然发现其中有几个单元格返回的是PHPExcel富文本对象,而且时间类型的单元格返回的是一个不是时间戳的五位数.就像下图那 ...
- 有关于weiphp2.00611上传sae的一些注意(图片上传解决方案)
一.安装中注意的事项 安装时使用的系统为weiphp2.0611 版本 1.将所有文件上传到代码库中 2.按照步骤进行安装weiphp,注意在数据库导入的时候需要手动导入. ...
- php上传sae路径问题
我们写php时,会有 define('POOT_PATH', dirname(__FILE__)); 但是sea中没有用,所以我们要用 define("ROOT_PATH", $_ ...
- android 上传文件"Content-Type",为"application/octet-stream" 用php程序在服务端用$GLOBALS['HTTP_RAW_POST_DATA']接受(二)
服务端php程序file_up.php function uploadFileBinary() { $this->initData(); $absoluteName = "" ...
- android 上传文件用php程序在服务端接受(一)
php服务端接受程序..file_up.php. <?php /* require_once('lib/session_config.php'); require_once('lib/flydc ...
- 2. SpringMVC 上传文件操作
1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 com.springsource.com.mc ...
- 微信小程序多张图片上传
微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个个api ...
随机推荐
- .Net中Math.Round与四舍五入
有不少人误将Math.Round函数当作四舍五入函数在处理, 结果往往不正确, 实际上Math.Round采用的是国际通行的是 Banker 舍入法. Banker's rounding(银行家舍入) ...
- C++学习13 类class和结构体struct的区别
C++保留了C语言的 struct,并且加以扩充.在C语言中,struct 只能包含数据成员,不能包含成员函数.而在C++中,struct 类似于 class,既可以包含数据成员,又可以包含成员函数. ...
- crmForm.SubmitCRMForm
其中函数功能及各参数意思. SubmitCRMForm( Mode, Validate, ForceSubmit, closeWindow) // we could use this f ...
- 常用命令之ps
ps : process status ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的:如果想对进程时间监控,应该用 top 工具. kill 命令用于杀死进程. linux上 ...
- JAVA 回调
一.定义 回调就是把函数指针做为参数传入,如函数A做为参数传入函数B,由B函数决定何时.何地调用函数A, function A() function B(A) { ...
- 九度OJ1061
//C++ sort函数的多重排序 #include <iostream> #include<algorithm> #include<string> using n ...
- JavaScript解耦记
有两个页面A.B.页面A调用页面B.B页面还通过异步加载方式包含一个javascipt(例如叫:ClassHeaderEvaluation.js)文件.问题场景:A页面通过异步请求方式请求B,并在B的 ...
- POJ - 1159 Palindrome(dp-回文变形)
d.求对字符串最少添加几个字符可变为回文串. s. 法1:直接对它和它的逆序串求最长公共子序列长度len.N-len即为所求.(N为串长度) 因为,要求最少添加几个字符,我们可以先从原串中找到一个最长 ...
- ContextLoaderListener与DispatcherServlet所加载的applicationContext的区别
spring通过在web.xml 中配置ContextLoaderListener 来加载context配置文件,在DispatcherServlet中也可以来加载spring context配置文件 ...
- SparkSQL使用之如何使用UDF
使用java开发一个helloworld级别UDF,打包成udf.jar,存放在/home/hadoop/lib下,代码如下: package com.luogankun.udf; import or ...