Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: НеРеальный размер файла
 
 автор: mr Bin   (09.05.2007 в 00:25)   письмо автору
 
 

Привет, проблема такая.

Записываю в бд размер файла в таком виде:
5,929,088
но смотря на этот файл в виндовс, он весит 5.65 и только уже в свойствах написано в скобочках что-то типо этого 5,929,088

Каким образом мне узнать нормлаьный размер файла, который увидят пользователи, скачав файл? Спасибо!

p.s. Вычислил, что размер файла больше примерно на 0.33мб, чем на яву..

   
 
 автор: Unkind   (09.05.2007 в 00:27)   письмо автору
 
   для: mr Bin   (09.05.2007 в 00:25)
 

Вычислил, что размер файла больше примерно на 0.33мб, чем на яву..
Как же Вы вычисляли? Вы уверены, что не забыли, что в одном мегабайте 1024 * 1024 байт?

   
 
 автор: mr Bin   (09.05.2007 в 00:30)   письмо автору
 
   для: Unkind   (09.05.2007 в 00:27)
 

Ой, ну что так привязываться :) Просто посмотрел на размеры добавленных файлов, и посмотрел на явный объём файлов, и у всех получилось почти по 0.33мб+-0.01

   
 
 автор: Unkind   (09.05.2007 в 00:36)   письмо автору
 
   для: mr Bin   (09.05.2007 в 00:30)
 

Ой, ну что так привязываться
Я просто так бы ни за что не "привязывался". Вместо этого вычислили бы сами. Калькулятор в Windows есть.

   
 
 автор: mr Bin   (09.05.2007 в 00:37)   письмо автору
 
   для: Unkind   (09.05.2007 в 00:36)
 

Грубо.

   
 
 автор: kukuikar   (09.05.2007 в 00:30)   письмо автору
 
   для: mr Bin   (09.05.2007 в 00:25)
 

5,929,088 / (1024*1024) = 5,6544189453125 Мб
Однако не всегда винда врет

   
 
 автор: kukuikar   (09.05.2007 в 00:34)   письмо автору
 
   для: kukuikar   (09.05.2007 в 00:30)
 

плюс в винде еще показывается сколько файл занимает на диске с учетом длины кластера, а этот вес всегда больше чистого.

   
 
 автор: mr Bin   (09.05.2007 в 00:36)   письмо автору
 
   для: kukuikar   (09.05.2007 в 00:34)
 

Спасибо большое! Всё получилось!

   
 
 автор: mr Bin   (09.05.2007 в 01:24)   письмо автору
 
   для: mr Bin   (09.05.2007 в 00:36)
 

Народ, столкнулся с новой проблемой:

специально для теста загрузил большой файл - 16,533,120

1) Во-первых, чтобы подсчитать, я заменяю запятые на точки.
2) Также не считает, когда две точки есть, поэтому обрубаю последние 4 символа.

16.533/(1024*1024)=1.5767097473145E-005
А должно получиться 15.7, что и является истинным размером.

Что я делаю не так и как исправить? Спасибо!

   
 
 автор: kukuikar   (09.05.2007 в 01:27)   письмо автору
 
   для: mr Bin   (09.05.2007 в 01:24)
 

А что, записывать без точек никак?
str_replace(".","",$string);

   
 
 автор: mr Bin   (09.05.2007 в 01:28)   письмо автору
 
   для: kukuikar   (09.05.2007 в 01:27)
 

Ё! Ночь может сказывается или тупой совсем...

Спасибо ещё раз большое!!!

   
 
 автор: kukuikar   (09.05.2007 в 01:35)   письмо автору
 
   для: kukuikar   (09.05.2007 в 01:27)
 

или вообще не писать размер в базу, а получать размер так:

<?php 
$fsize 
=  filesize($file);
?>

   
 
 автор: mr Bin   (09.05.2007 в 01:40)   письмо автору
 
   для: kukuikar   (09.05.2007 в 01:35)
 

Не, в базу специально пишу, чтобы подсчитать размер некоторого количества файлов или весь их объём.

   
 
 автор: kukuikar   (09.05.2007 в 01:49)   письмо автору
 
   для: mr Bin   (09.05.2007 в 01:40)
 

Я бы сделал не так. Циклом бы обошел все нужные файлы, и вычислил их размер по одному или суммарный.

Размер файла - то может изменится....?

   
 
 автор: mr Bin   (09.05.2007 в 01:56)   письмо автору
 
   для: kukuikar   (09.05.2007 в 01:49)
 

Нет, размер не меняется.
Да, согласен - тактику я глупую выбрал...

Но размер в бд должен быть, т.к. постоянно брать размес с файла - это сильно грузить сервак.
Лучше в бд буду добавлять сразу готовый объём в нужном мне формате, и при просмотре страницы он уже не будет вычисляться, как сейчас...
А при нужде подсчитать объём нужных файлов буду просто складывать значения.

А чтобы узнать весь объём файлов, можно сделать отдельную ячейку, куда при каждом добавлении файла плюсовать его объём.

   
 
 автор: Unkind   (09.05.2007 в 01:56)   письмо автору
 
   для: kukuikar   (09.05.2007 в 01:49)
 

Циклом бы обошел все нужные файлы
И поставить сервер раком.

   
 
 автор: Drago   (09.05.2007 в 01:35)   письмо автору
 
   для: mr Bin   (09.05.2007 в 01:24)
 

.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования