Есть такое расширение PHP: uploadprogress При загрузке файлов - столкнулся с проблемой: элемент $info['bytes_total'] отдает неверное значение размера загружаемого файла, завышает его на 0-1500 байт. Например, при загрузке файла размером 1048576 байт он возвращает 1048921. Никто с таким не сталкивался ?
Файл загружается правильный, с правильным размером и хешем. Но поле $info['bytes_total'] врет во время загрузки. Вот экзампл, взятый из дистрибутива этого расширения: http://avkiev.kiev.ua/php/examples/ Даже при загрузке файла, размером 1М (1048576 байт) - $info['bytes_total'] = 1048921
Вот, что ответил разработчик: That data (bytes_total) comes directly from PHP itself and isn't changed by the extension. It's also not necessarily the total length of your file, but the total length of your upload, which is reported by your browser at the start of the upload. Nothing I can do. Вот фрагмент исходника: Код (Text): static int uploadprogress_php_rfc1867_file(unsigned int event, void *event_data, void **data TSRMLS_DC) { zval handler; char *callable = NULL; uploadprogress_data * progress; int read_bytes; zend_bool get_contents = INI_BOOL("uploadprogress.get_contents"); progress = *data; if (event == MULTIPART_EVENT_START) { multipart_event_start *e_data; e_data = (multipart_event_start*) event_data; progress = emalloc( sizeof(uploadprogress_data) ); progress->upload_id = NULL; progress->fieldname = NULL; progress->data_filename = NULL; progress->bytes_total = e_data->content_length; ... То есть, как я понимаю, PHP выдает размер_файла + размер_некоего_служебного_трафика. Что, действительно никак нельзя узнать объем служебного трафика и вычесть его от того, что выдает PHP ?