在用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的更多相关文章

  1. 把php上传sae问题要使用IO

    应用移植指南 一,为什么要移植应用 SAE禁止IO写操作,代码目录不能写入.这意味着普通程序的上传图片.生成缓存等操作都不能在SAE上正常运行,这时候你需要对这些代码进行修改后才能让你的程序运行在SA ...

  2. 使用phpexcel上传下载excel文件

    1. 下载 <?php /** * Created by lonm.shi. * Date: 2012-02-09 * Time: 下午4:54 * To change this templat ...

  3. 关于PHPExcel上传Excel单元格富文本和时间类型读取数据问题

    当用PHPExcel做Excel上传文件读取数据时,print_r出来的数据,竟然发现其中有几个单元格返回的是PHPExcel富文本对象,而且时间类型的单元格返回的是一个不是时间戳的五位数.就像下图那 ...

  4. 有关于weiphp2.00611上传sae的一些注意(图片上传解决方案)

    一.安装中注意的事项  安装时使用的系统为weiphp2.0611    版本     1.将所有文件上传到代码库中     2.按照步骤进行安装weiphp,注意在数据库导入的时候需要手动导入.  ...

  5. php上传sae路径问题

    我们写php时,会有 define('POOT_PATH', dirname(__FILE__)); 但是sea中没有用,所以我们要用 define("ROOT_PATH", $_ ...

  6. android 上传文件"Content-Type",为"application/octet-stream" 用php程序在服务端用$GLOBALS['HTTP_RAW_POST_DATA']接受(二)

    服务端php程序file_up.php function uploadFileBinary() { $this->initData(); $absoluteName = "" ...

  7. android 上传文件用php程序在服务端接受(一)

    php服务端接受程序..file_up.php. <?php /* require_once('lib/session_config.php'); require_once('lib/flydc ...

  8. 2. SpringMVC 上传文件操作

    1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 com.springsource.com.mc ...

  9. 微信小程序多张图片上传

    微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个个api ...

随机推荐

  1. .NET单元测试

    原文链接:http://www.cnblogs.com/edisonchou/p/5467573.html

  2. spring错误:<context:property-placeholder>:Could not resolve placeholder XXX in string value XXX

    spring同时集成redis和mongodb时遇到多个资源文件加载的问题 这两天平台中集成redis和mongodb遇到一个问题 单独集成redis和单独集成mongodb时都可以正常启动程序,但是 ...

  3. DevExpress某些控件继承后的可编辑性

    今天在使用DevExpress的BarManager菜单控件时,发现在进行继承时无法在继承的子类窗体中对其进行编辑与修改,另外像GridView也有类似的情形,后来查阅资料后,现在可通过DevExpr ...

  4. Nginx 内置全局变量

    Nginx在使用过程中,有不少的内置全局变量可以用做条件判断和编程控制,本文总结一些已知的指令,以供参考. $arg_PARAMETER  这个变量包含在查询字符串时GET请求PARAMETER的值. ...

  5. sqlite报错OutOfMemory

    如 java.sql.SQLException: out of memory at org.sqlite.DB.throwex(DB.java:252) at org.sqlite.NestedDB. ...

  6. openssl rsa 私钥 PKCS8私钥 公钥

    上文配置好 openssl 运行 => cmd => cd C:\usr\local\ssl\bin => 执行 openssl

  7. PetaPoco.Core.ttinclude修改

    /// <summary> /// Adds the singular rule. /// </summary> /// <param name="rule&q ...

  8. (转)直接拿来用!最火的iOS开源项目(一)

    1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...

  9. windows 测试数据库的连接状况-udl方法

    udl是windows系统上,用于测试数据库的连接状态的测试软件. 使用方法: 1.建立一个空白文本 2.将文件的后缀名更改为*.udl 即可     文件内容一定为空 3.选择windows的“提供 ...

  10. linux包转发开发

    28号晚上接到这个任务的, 看了点epoll, 29号上午安装Ubuntu 12.10的G++, 开始把内网的vm虚拟机文件, 复制到外网, 重新建立一个虚拟机再更新, 最后外网也没能安装得了g++. ...