在用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. [Java] 03 String获取文件后缀名,判断文件是否合法

    package test.string; import java.util.Arrays; import java.util.List; public class GetFileType { priv ...

  2. virtualenvwrapper

    VirtualEnv 是什么 VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装. 为什么要用 - 隔离项目 ...

  3. Windows程序设计-窗口和消息

    本章内容比较少,没有代码类的内容,这里付思维导图一章,看起来比较清晰.

  4. Storm实时计算框架的编程模式

    storm分布式流式计算框架. nimbus:主进程服务(职责就是任务的分配的,程序的分发) supervisor:工作进程服务(职责就是启动线程池,接受任务,运行任务,报告任务的运行状态) 注意容错 ...

  5. linux mint konsole终端模拟器 字符之间空格

    最近安装了linux mint 发现里面的终端是:konsole终端模拟器 ,问题是每次输字符随着输入字符越来越多,字符与光标之间的距离也越来越大(看上去像是自动添加了空格一样), 同时在使用vi时, ...

  6. Spark1.0源码编译

    编译方式一:mavenexport MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"m ...

  7. 制作Win7(x86)PE ISO文件

    WinPE3.1     —Win7 x86 PE V3.1: waik_supplement_zh-cn.isoDVD: cn_windows_7_professional_with_sp1_x86 ...

  8. Android下实现控件的叠加显示

    <FrameLayout android:layout_width="fill_parent" android:layout_height="match_paren ...

  9. 【测试】通过SYS用户,对SCOTT用户的会话进行跟踪,并分析此会话中性能消耗较高的SQL,分析并给出优化建议。

    ①连接到scott下,查询scott对应的sid,serial# SQL> select sid,serial#,username from v$session where username=' ...

  10. 同步灵无线锂电鼠G11-580HX独特“五灵键”

    http://tieba.baidu.com/p/2130455709 现在鼠标功能越来越强大,游戏鼠标的宏设置,办公鼠标的复制粘贴等.各位有没有给鼠标设置一些好玩.方便.搞怪.有意思的的功能的呢?笔 ...