[ZipStream] использует zipstream, загружая много URL

Я попытался использовать ZipStream, и я понял, что когда URL-адреса маленькие, например, 5 URL-адресов, это работает хорошо, но когда URL-адреса больше, браузер крутится и не может получить zip-файл. вопрос раньше? Большое спасибо. Ниже приведен мой код. Я использую Mac OS и отлаживаю код на phpstorm, используя localhost и порт 63342.

<?php
require_once __DIR__ . '/vendor/autoload.php';

use ZipStream\ZipStream;

// Create new Zip
$zip = new ZipStream("hi.zip");

// add a lot of http urls
$urls = [
'http://img31.mtime.cn/pi/2014/10/22/092931.12614666_1000X1000.jpg',
'http://img31.mtime.cn/pi/2014/10/22/092931.79193700_1000X1000.jpg',
];

foreach($urls as $url) {
 // Create Temp File
  $fp = tmpfile();

// Download File
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_URL, $url);
curl_exec($ch);

// Force to write all data
fflush($fp);

// Rewind to the beginning, otherwise the stream is at the end from the start
rewind($fp);

// Find out a file name from url
// In this case URL 
http://img31.mtime.cn/pi/2014/10/22/092931.12614666_1000X1000.jpg will yield
// /pi/2014/10/22/092931.12614666_1000X1000.jpg as file path
$filename = parse_url($url, PHP_URL_PATH);

// Add File
$zip->addFileFromStream($filename, $fp);

// Close the Temp File
fclose($fp);
}

// Finish ZIP
$zip->finish();

1 ответ

Ну, я успешно загрузил 1.3G zip-файл из браузера, используя приведенный выше код. Сначала я не могу получить zip-файл, потому что я использую внутренний интерпретатор phpstorm , позже я перешел на сервер apache и преуспел. Спасибо автору zipstream Джонатану Мянхену.

Другие вопросы по тегам