Sumburus
Guest
Архив открывается корректно только при сохранении на диск
Здравствуйте,
Была задача автоматически архивировать прайс-лист, загружаемый на сайт, а потом рассылать его по почте.
Сделал это следующим образом:
$fp=fopen($price_file.'.xls', "rb");
$zp = gzopen($price_file.'.xls.zip', "w9");
if (($fp) && ($zp)) {
$fs = filesize($price_file.'.xls');
$data = fread($fp,$fs);
gzwrite($zp, $data);
gzclose($zp);
fclose($fp);
}
Работало всё довольно долго, но сейчас пошли комментарии от клиентов, что прайс невозможно открыть. Выяснилось следующее.
Если напрямую дать ссылку на прайс на сайте и сказать октрыть, то то, что внутри прочитать нормально не получится. Будет файл price.xls[1]. Но если этот файл (price.xls.zip) сначала скопировать, скажем, на рабочий стол и потом открыть, то файл внутри нормально открывается.
То же происходит, когда прайс в архиве приходит по почте. Если сохранить на диск - всё ок, а так, например, в The Bat название типа 1ADECDB. Соответственно человек нормально прочитать не может.
Подскажите, пожалуйста, с чем это связано и как можно поправить?
Здравствуйте,
Была задача автоматически архивировать прайс-лист, загружаемый на сайт, а потом рассылать его по почте.
Сделал это следующим образом:
$fp=fopen($price_file.'.xls', "rb");
$zp = gzopen($price_file.'.xls.zip', "w9");
if (($fp) && ($zp)) {
$fs = filesize($price_file.'.xls');
$data = fread($fp,$fs);
gzwrite($zp, $data);
gzclose($zp);
fclose($fp);
}
Работало всё довольно долго, но сейчас пошли комментарии от клиентов, что прайс невозможно открыть. Выяснилось следующее.
Если напрямую дать ссылку на прайс на сайте и сказать октрыть, то то, что внутри прочитать нормально не получится. Будет файл price.xls[1]. Но если этот файл (price.xls.zip) сначала скопировать, скажем, на рабочий стол и потом открыть, то файл внутри нормально открывается.
То же происходит, когда прайс в архиве приходит по почте. Если сохранить на диск - всё ок, а так, например, в The Bat название типа 1ADECDB. Соответственно человек нормально прочитать не может.
Подскажите, пожалуйста, с чем это связано и как можно поправить?