我有几个链接到图像的URL,我希望能够使用这些图像创建.zip文件。基本上,用户可以下载他们自己的图像。下载图像并通过PHP将它们压缩到
图片不在我的服务器上,有没有办法以这样的方式压缩这些文件:每个用户使用自己的带宽?
如果不是,该问题的最佳解决方案是什么? (PHP或Javascript)
编辑:为什么2 downvotes?我没有要求代码。 我有2个问题: 1)我可以下载图像和ZIP他们没有使用我的服务器带宽? 2)如果不是,什么是最好的解决方案。
我有几个链接到图像的URL,我希望能够使用这些图像创建.zip文件。基本上,用户可以下载他们自己的图像。下载图像并通过PHP将它们压缩到
图片不在我的服务器上,有没有办法以这样的方式压缩这些文件:每个用户使用自己的带宽?
如果不是,该问题的最佳解决方案是什么? (PHP或Javascript)
编辑:为什么2 downvotes?我没有要求代码。 我有2个问题: 1)我可以下载图像和ZIP他们没有使用我的服务器带宽? 2)如果不是,什么是最好的解决方案。
JS可以通过使用ajax下载图像(here是关于使用ajax下载二进制数据的一些想法)和某些JS ZIP库(例如http://stuartk.com/jszip/)来打包数据 - 则不会使用服务器带宽。
另一种可能性是将图像下载到服务器(例如使用cURL),将它们压缩(例如使用ZipArchive类)并发送到客户端 - 此解决方案使用服务器带宽。
谢谢!所以这只是确保JS ZIP能够达到检索的AJAX数据的问题。 –
1.To下载图像,如果http://example.com/image.php hoding一个图像test.jpg放在
a)如果您有allow_url_fopen选项设置为true:
$url = 'http://example.com/image.php';
$img = '/tempfolder/test.jpg';
file_put_contents($img, file_get_contents($url));
B)否则使用卷曲:
$ch = curl_init('http://example.com/image.php');
$fp = fopen('/tempfolder/test.jpg', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
2.要压缩所有文件,可以使用ziparchive创建压缩文件。
$files = array('test.jpg', 'test1.jpg');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
3.To流zip文件使用以下行,
$zipfilename = 'file.zip';
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=file.zip');
header('Content-Length: ' . filesize($zipfilename));
卷曲,保存,压缩它们并添加到头部 –
那么,什么是您的具体问题?您正在描述几项功能(获取远程文件,创建ZIP压缩文件,提供下载,跟踪每个用户消耗的带宽......)。如果你陷入了所有这些问题,你应该考虑雇用一名专业人员。这不是免费完成代码的网站。 –