我正在尝试从zip存档中提取图像,然后将其写入文件。 基本上,我的代码是这样的(删除了一些位):
while($zip_data = zip_read($zip)) { $tfile = zip_entry_name($zip_data); if((substr($tfile, -11) == "_screen.png") && (substr($tfile, 0, 8) == "template")) { $screen = zip_entry_read($zip_data); $screen_name = $tfile; } zip_entry_close($zip_data); }
我成功获取了屏幕变量中的图像。但是,我不知道如何写入图像文件:|
我尝试使用file_put_contents,它会生成一个大小正确的空白图像,但其他所有内容都是空的。 我也试过
$screen_im = imagecreatefromstring($screen)
然后将带有imagepng的screen_im写入路径但仍然没有运气。 我现在真的不知道该怎么做。简单地解压缩存档并不是我需要的,因为我似乎正确地从存档中读取图像,应该有一种方法将其写入新图像
任何有关这方面的帮助都是非常准确的
答案 0 :(得分:2)
您没有指定要读取的长度,这就是为什么只读取初始数据。来自zip_entry_read doc:
string zip_entry_read ( resource $zip_entry [, int $length ] )
length - 要返回的字节数。如果未指定,此函数将尝试读取1024个字节。
您应该提供文件的长度,以便在最后读取它,而不仅仅是第一个KB。或者,如果文件非常大,则应使用循环fwrite
答案 1 :(得分:1)
file_put_contents
应该有效。如果您在记事本中打开生成的文件,它看起来像什么?如果你从zip存档中手动提取它会是什么样子?