Laravel 5.4 中的 Zipstream - 数据已损坏
Posted
技术标签:
【中文标题】Laravel 5.4 中的 Zipstream - 数据已损坏【英文标题】:Zipstream in Laravel 5.4 - Data is corrupted 【发布时间】:2017-08-29 15:58:43 【问题描述】:我正在使用该方法生成一个示例 zip 文件。
不幸的是,zip 文件的输出没有解压缩到预期的输入。
public function generateZip(Request $req)
$response = new StreamedResponse(function()
$opt = array(
'comment' => 'test zip file.',
'send_headers'=>true,
);
$zip = new ZipStream\ZipStream('example.zip');
# create a file named 'hello.txt'
$zip->addFile('hello.txt', 'This is the contents of hello.txt');
# finish the zip stream
$zip->finish();
);
return $response;
文件生成example.zip
,解压文件后解压“hello.txt”,但内容是一个空白的新行
…»,V¢íåTÖ‰¸ºí‘ºíbÖ¸4Öå‘úú|Ωíä
我的努力是基于以下代码:
Using ZipStream in Symfony: streamed zip download will not decompress using Archive Utility on Mac OSX
我的调试步骤是这样开始的:
1) 尝试使用 Amazon S3 流生成 zip 文件
2) 修改设置,移除压缩
3) 将问题隔离为最简单的结果
4) 添加输出缓冲和输出刷新以尝试拦截任何输出。
我的路线是这样的:
Route::get("/generate-zip", 'myController@generateZip');
【问题讨论】:
【参考方案1】:不幸的是,我的问题与图书馆无关。我(我认为)不小心在 /vendor 中保存了一个文件,其中包含一些额外的代码。擦拭供应商文件夹并重新安装就可以了。
【讨论】:
以上是关于Laravel 5.4 中的 Zipstream - 数据已损坏的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Session 总是改变 Laravel 5.4 中的每个刷新/请求
Laravel 5.4 上 Manager.php 第 139 行中的 FatalErrorException
LARAVEL 5.4:ValidatePostSize.php 中的 PostTooLargeException(第 24 行)