В общем пишу сейчас загрузку в инет-магазин по стандарту КомерцМЛ из 1С.
Выгрузку беру стандартную (от битрикса), загрузку пишу свою, точнее дорабатываю то что удалось найти.
Сейчас с демо базой нормально работает, загружается номенклатура, цены, свойства, картинки, но когда перешел на тестирование выгрузки загрузки данных из основной БД, то файлик оказался большим и веб сервер отказался его грузить.
Сделал разбивку архива на части - эти части благополучно загрузились на сервер, но опять заткнулся - не получается собрать воедино части архива.
Когда отключаю выгрузку картинок, то тоже номально загружается (получается один полноценный архив). Вобщем дело в картинках - их много и занимают много места.
Выгружать отдельно картинки не совсем вариант, т.к. хочется оставить типовый механизм выгрузки данных на сайт.
Вобщем вот функция которая у меня делает разархивацию, если кто подскажет как можно собрать части архива на php буду благодарен
$file - файл который нужно разархивировать
$folder - каталог где лежит файл
function unzip($file,$folder=''){
$zip = zip_open($folder.$file);
$files = 0;
$folders = 0;
if ($zip) {
while ($zip_entry = zip_read($zip)) {
$name = $folder . zip_entry_name($zip_entry);
$path_parts = pathinfo($name);
# Создем отсутствующие директории
if(!is_dir($path_parts['dirname']))
{
mkdir($path_parts['dirname'], 0755, true);
}
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$file = fopen($name, "wb");
if ($file) {
fwrite($file, $buf);
fclose($file);
$files++;
} else {
}
zip_entry_close($zip_entry);
}
}
zip_close($zip);
} else {
}
}
Когда идет загрузка архива по частям , то ругается на
while ($zip_entry = zip_read($zip)) {
Ошибка следующая
PHP Warning: zip_read() expects parameter 1 to be resource, integer given in /home/...../connect.php on line ....