|
|
|
| Добрый день!
Подскажите пожалуйста, можно ли средствами php открыть архив, и скачать конкретный файл находящийся в архиве?
Например архив:
archiv.zip
- 1.txt
- 2.jpg
- 3.php
|
Как мне скачать допустим только 2.jpg? | |
|
|
|
|
|
|
|
для: selma
(21.11.2011 в 04:23)
| | только использую команды ssh.
см. system("");
- распаковать архив
- скопировать нужные файлы
- удалить ненужное. | |
|
|
|
|
|
|
|
для: selma
(21.11.2011 в 04:23)
| |
<?php
$zip = new ZipArchive;
$res = $zip->open('archiv.zip');
if ($res === TRUE) {
$zip->extractTo('./', '2.jpg');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
|
B php должен быть подключен модуль zlib (для php >= 5.2.0) либо ZZIPlib (для php 4 ) | |
|
|
|
|
|
|
|
для: Sfinks
(21.11.2011 в 08:42)
| | А если человек просто откроет архив (распакует), не станет качать ничего, а просто уйдет, для чего мне плодить мусор (разархивированые файлы)?
Нужно открыть / прочитать архив (вывести списком содержимое), и скачать любой из этого списка файл. Без ущерба содержимого, и без размножения лишних файлов | |
|
|
|
|
|
|
|
для: selma
(21.11.2011 в 10:06)
| | В чем проблема? Название класса вам дали, в мануале есть подробное описание всех методов с примерами. | |
|
|
|
|
|
|
|
для: selma
(21.11.2011 в 10:06)
| | В любом случае промежуточные файлы придется где-то хранить, так все делают, даже те программы, которые вроде бы на лету распаковывают архивы. Только в отличие от этих программ, удалять ненужные файлы вам придется самостоятельно - лучше для этого выделить специальную папку и подпапки в ней, которые следует чистить по cron. | |
|
|
|