質問編集履歴
2
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -302,6 +302,10 @@
|
|
302
302
|
|
303
303
|
結果、中身の無いzipが出来上がりました。
|
304
304
|
|
305
|
+
ただ、zipフォルダはサイズが8KBあります。
|
306
|
+
|
307
|
+
どういう状況なのか見当がつきません。
|
308
|
+
|
305
309
|
原因について分かることがあれば意見をお願いしたいです。
|
306
310
|
|
307
311
|
|
1
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -291,3 +291,75 @@
|
|
291
291
|
どこが原因になっているでしょうか?
|
292
292
|
|
293
293
|
よろしくお願いします。
|
294
|
+
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
/********* 追記 **********/
|
300
|
+
|
301
|
+
回答してくださった方の意見を元に、コードを修正しました。
|
302
|
+
|
303
|
+
結果、中身の無いzipが出来上がりました。
|
304
|
+
|
305
|
+
原因について分かることがあれば意見をお願いしたいです。
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
```php
|
310
|
+
|
311
|
+
$dist = 'mysite.zip'; // 生成する圧縮ファイル名
|
312
|
+
|
313
|
+
$path = './mysite'; // 圧縮するパス
|
314
|
+
|
315
|
+
$zipTmpDir = '/phpdocs/nonprothemes'; // 一時パス
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
$zip = new ZipArchive();
|
322
|
+
|
323
|
+
$zip->open($zipTmpDir.$dist, ZipArchive::CREATE | ZipArchive::OVERWRITE);
|
324
|
+
|
325
|
+
addZip($zip, $path);
|
326
|
+
|
327
|
+
$zip->close();
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
function addZip($zip, $path) {
|
332
|
+
|
333
|
+
if (is_dir($path)) {
|
334
|
+
|
335
|
+
$files = array_diff(scandir($path), ['.', '..']);
|
336
|
+
|
337
|
+
foreach ($files as $file) addZip($zip, "$path/$file");
|
338
|
+
|
339
|
+
} else {
|
340
|
+
|
341
|
+
$zip->addFile($path);
|
342
|
+
|
343
|
+
}
|
344
|
+
|
345
|
+
}
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
// ストリームに出力
|
350
|
+
|
351
|
+
header('Content-Type: application/zip; name="' . $dist . '"');
|
352
|
+
|
353
|
+
header('Content-Disposition: attachment; filename="' . $dist . '"');
|
354
|
+
|
355
|
+
header('Content-Length: '.filesize($zipTmpDir.$dist));
|
356
|
+
|
357
|
+
echo file_get_contents($zipTmpDir.$dist);
|
358
|
+
|
359
|
+
|
360
|
+
|
361
|
+
// 一時ファイルを削除しておく
|
362
|
+
|
363
|
+
unlink($zipTmpDir.$dist);
|
364
|
+
|
365
|
+
```
|