Да, я в общем согласен - проще скачать, чем делать вывод на сайте размер архива.

Кроме того вот так можно узнать размер файла на сервере вообще ничего не скачивая (пример на Delphi):

Скрытый текст


PHP код:
function web_GetFileSize(const FileURLstring): Integer;
var
  
hSessionhFilehInternet;
  
dwBuffer: array [.. 20of WideChar;
  
dwBufferLendwIndexDWORD;
begin
  Result 
:= 0;
  
hSession := InternetOpen('GetUrlSize'INTERNET_OPEN_TYPE_PRECONFIG,
    
nilnil0);
  if 
Assigned(hSessionthen
  begin
    hFile 
:= InternetOpenURL(hSessionPChar(FileURL), nil0,
      
INTERNET_FLAG_RELOAD0);
    
dwIndex := 0;
    
dwBufferLen := 20;
    if 
HttpQueryInfo(hFileHTTP_QUERY_CONTENT_LENGTH, @dwBufferdwBufferLen,
      
dwIndexthen
      Result 
:= StrToInt(StrPas(PWideChar(@dwBuffer)));
    if 
Assigned(hFilethen
      InternetCloseHandle
(hFile);
    
InternetCloseHandle(hSession);
  
end;
end
[свернуть]


А вот хранить в базе сайта и выводить MD5 (причем уже разархивированного файла) было бы полезно. При аплоаде можно брать входящий файл, расчитывать его хэш, сравнивать с существующими и если совпадет говорить 'извините, этот файл уже существует на сайте'.

Но я в веб-программировании ноль так что не могу сказать насколько это сложно.