我正在PHP中开发小型API,我需要创建一个ZIP存档,但内容(文件)也是用PHPExcel库随时创建的,任何人都知道如何执行它?从PHPExcel Objects创建ZIP存档
回答
好像你可以这样做:
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'file content goes here');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
所以,你必须得到PHPExcel字符串中的使用方法addFromString
内容。
欲了解更多信息,看看这里:http://php.net/manual/en/ziparchive.addfromstring.php
所以,你的男人,在ma case我应该使用类似的东西:\t \t \t <?php \t \t \t $ zip = new ZipArchive; \t \t \t $ res = $ zip-> open('test.zip',ZipArchive :: CREATE); \t \t \t如果($ RES === TRUE){ \t \t \t \t $ zip-> addFromString( 'TEST.XLS',$ objectWriter->保存( “excel_file.xls”)); \t \t \t \t $ zip-> close(); \t \t \t \t echo'ok'; \t \t \t}否则{ \t \t \t \t回波 '失败'; \t \t \t} \t \t \t?> – Robert 2012-03-09 11:09:39
你需要得到一个字符串VOM PHPExcel对象和路径这个字符串'addFromString'方法。我不知道这种方法是否存在。检查PHPExcel的手册。否则,你必须按照DaveRandom(创建Tmp XLS文件...)描述的方式。 – tonymarschall 2012-03-09 11:39:58
- 1. 创建使用Go的存档Unicode文件名zip存档/ ZIP
- 2. PHPExcel创建/样式/保存PDF文档
- 3. 如何使用PowerShell创建zip存档?
- 4. 从Filechannels创建Zip归档文件
- 5. 从Windows命令提示符创建时间戳ZIP存档
- 6. php zip存档
- 7. 从内存流C创建Zip文件#
- 8. Android SDK Zip存档
- 9. 在Java中创建zip档案
- 10. PHP传递HTML字符串来创建ZIP存档
- 11. zip与MAMP存档?
- 12. 从Business Objects创建Sql数据库表
- 13. PHPExcel创建令牌
- 14. 创建zip存档以便即时下载
- 15. Gradle任务创建目录的zip存档
- 16. 创建maven“目标”目录的zip存档
- 17. 使用Textfile中的文件创建7-Zip存档 - Powershell
- 18. Perl:创建ZIP存档,同时忽略路径名称
- 19. 如何使用Ruby on Rails创建一个zip存档?
- 20. 未能创建ZIP存档,但没有错误信息
- 21. 从zip创建文件 - android
- 22. PHP从Zip存档中读取
- 23. 尝试从ZIP存档中创建ImageIcon对象时PNGException“crc腐败”
- 24. 从Cocoa应用程序创建ZIP归档文件
- 25. 从zip档案创建和解压缩文件
- 26. 如何从我的文档目录创建.zip文件?
- 27. PHP zip存档进度条
- 28. 在内存中创建ZIP文件
- 29. C# - 如何使用7-zip库(即不是.7z,但.zip)创建常规ZIP存档?
- 30. 从内存中下载url中的图像并在内存中创建zip存档以发送给浏览器
最简单的方法是创建一个临时目录,创建您的Excel文件,并在它甩掉他们,创建的目录的内容的zip压缩包,服务zip压缩包然后删除临时数据。这在程序上是最简单的方式,但在磁盘I/O方面效率不高 - 因此您可以在内存中完成所有操作,但在内存使用方面效率不高。无论采用哪种方法,您只需将流程分成“创建Excel文件” - >“压缩文件” - >“发送数据” - >“删除在1和2期间创建的任何临时数据” – DaveRandom 2012-03-09 11:07:25
我只能在飞行中执行此操作,在这种情况下我无法使用I/O操作 – Robert 2012-03-09 11:10:27
您的意思是您必须在内存中执行此操作,并且无法将任何内容(即使是暂时的)写入磁盘?这将是非常昂贵的内存... – DaveRandom 2012-03-09 11:12:25