【发布时间】:2017-01-03 13:33:23
【问题描述】:
我创建了一个具有导出功能的 Angular 项目,以便能够将输出作为 .Zip 下载到本地计算机。
现在,我计划添加一个新功能,使用 Web API 将 zip 文件直接上传到服务器,而不是下载到本地,是否可以在 Angular 上使用?我正在考虑修改我的功能以下载到本地并将其更改为推送到外部服务器(但不工作)。 因为我是 Angular 新手。
@floc 更新:
感谢您的指导,所以我创建了如下功能:
private function zip($path, $id)
{
$realPath = realpath($path);
$absolute = $realPath.DIRECTORY_SEPARATOR;
$ignore = array(realpath($this->exportsPath), $realPath);
//delete old zip if it exists
if (is_file($absolute.$id.'.zip')) {
unlink($absolute.$id.'.zip');
}
$zip = new ZipArchive();
$zip->open($absolute.$id.'.zip', ZipArchive::CREATE);
$files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($realPath), \RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file)
{
$path = $file->getRealPath();
if ( ! in_array($file->getRealPath(), $ignore)) {
if (is_dir($file))
{
$zip->addEmptyDir(str_replace($absolute, '', $path));
}
else if (is_file($file))
{
$zip->addFromString(str_replace($absolute, '', $path), file_get_contents($file));
}
}
}
if ($zip->close()) {
return $absolute.$id.'.zip';
}
}
而不是另存为 zip 文件,我想一键使用 web api 上传该 zip 文件。我想修改它,但仍然没有运气。 :(
感谢您的任何帮助和建议。
【问题讨论】:
-
Zip 文件不能很好地转换为 JSON。最好将它们发布为
application/zip或application/octet-stream。