Ne-Lexa / php-zip

PhpZip is a php-library for extended work with ZIP-archives.
MIT License
494 stars 60 forks source link

Error if the file is empty #8

Closed visavi closed 6 years ago

visavi commented 6 years ago

Get entry contents.

// $entryName = 'path/to/example-entry-name.txt';

$contents = $zipFile[$entryName]; Checks whether a entry exists.

// $entryName = 'path/to/example-entry-name.txt';

$hasEntry = isset($zipFile[$entryName]);

if the file exists, but it is empty (0 bytes), then an error is displayed ErrorException (E_WARNING) fread (): Length parameter must be greater than 0

I think this is not correct, since the file can be empty in the archive

Ne-Lexa commented 6 years ago

This is a bug, and it has already been resolved in the forthcoming release of version 3.1.0, as well as much more. In addition, version 3.0.3 will be released with the closure of this error.

Ne-Lexa commented 6 years ago

Bug fixed. Upgrade to version 3.0.3.

visavi commented 6 years ago

Тут тоже https://github.com/Ne-Lexa/php-zip/blob/42c0fc59dff30e32630455e9e645c63358e013ac/src/PhpZip/ZipFile.php#L1047 если файл пустой выкидывает exception, хотя может так и надо

кстати не хватает функционала Content-Disposition: inline; чтобы не скачивало, а выводило в браузере p.s. хотя нет, это я перепутал, я думал этот метод позволяет скачивать файлы из архива

Ne-Lexa commented 6 years ago

если файл пустой выкидывает exception, хотя может так и надо

Так и надо. Хотя HTTP спецификация не запрещает, поэтому в следующей версии будет поддержка пустого имени файла для сохранения.

кстати не хватает функционала Content-Disposition: inline; чтобы не скачивало, а выводило в браузере

Будет в следующей версии.

Ne-Lexa commented 6 years ago

Вышел релиз 3.1.0, в котором, среди прочего, добален недостающий функционал с Content-Disposition: inline.