Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка целостности файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: csv-файл
InviS
Отправлено: 16 Мая, 2010 - 18:24:27
Post Id


Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Подскажите, пожалуйста... Как проверить загружен ли файл на сервер полностью или еще грузится? Т.е. я его пытаюсь открыть в то время, как другой сервер мне его выкидывает...
 
 Top
Мелкий Супермодератор
Отправлено: 16 Мая, 2010 - 20:34:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




По размеру.


-----
PostgreSQL DBA
 
 Top
Dekker8
Отправлено: 16 Мая, 2010 - 20:40:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




еще есть контрольная сумма(MD5,CRC32 и т д)
 
 Top
InviS
Отправлено: 16 Мая, 2010 - 20:57:58
Post Id


Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




А как ее получить? Она в файле прописана? Ее можно сравнить или тоже выкладывать нужно?
Что значит по размеру? Я же не знаю сколько файл весит заранее... И сервер, который выкладывает этот файл должен уведомлять? чет тоже сомнительно)
 
 Top
Dekker8
Отправлено: 16 Мая, 2010 - 21:07:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




есть такая функция md5_file() в PHP она дает контрольную сумму файла
 
 Top
Мелкий Супермодератор
Отправлено: 16 Мая, 2010 - 21:07:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Dekker8 пишет:
еще есть контрольная сумма(MD5,CRC32 и т д)

Это точнее определит, да, в том числе ошибки сети, но и ресурсы проца побольше ест.

InviS пишет:
А как ее получить?

А загуглить? Она высчитывается по файлу.

InviS пишет:
Что значит по размеру? Я же не знаю сколько файл весит заранее... И сервер, который выкладывает этот файл должен уведомлять?

Да, обычно высылается заголовок с размером файла.

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


-----
PostgreSQL DBA
 
 Top
InviS
Отправлено: 16 Мая, 2010 - 21:10:34
Post Id


Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Я думал можно четко средствами php как-то выудить Улыбка Жаль, что нельзя... А EOF будет в конце, если не полностью файл загружен?
 
 Top
Мелкий Супермодератор
Отправлено: 16 Мая, 2010 - 21:18:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




InviS пишет:
А EOF будет в конце, если не полностью файл загружен?

EOF есть всегда, даже на пустом файле, т.к. EOF является концом физически доступного файла.


-----
PostgreSQL DBA
 
 Top
InviS
Отправлено: 16 Мая, 2010 - 21:19:52
Post Id


Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Ясно) плохо. Так и не понял, как можно узнать... получается нужно заставить сервер выкладывать хэш-сумму до файла, а потом уже проверять?..
 
 Top
Мелкий Супермодератор
Отправлено: 16 Мая, 2010 - 22:08:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




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


-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 17 Мая, 2010 - 01:34:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




InviS пишет:
Как проверить загружен ли файл на сервер полностью или еще грузится?
Особенностью PHP является то что в общем случае это невозможно сделать - поскольку исполнение вашего PHP-кода начинает после завершения получения им всех HTTP-заголовков и всех POST-данных - таким образом даже если вы запустите пареллельно другой PHP-скрипт для определения текущего размера закачиваемого файла - то вы все равно никак не сможете узнать его оригинальный размер потому что он находится в HTTP-заголовке у неисполняемого в данный момент PHP-скрипта обеспечивающего закачку файла Как вариант решения данной задачи может быть наличие ActiveX-элемента на клиентской стороне для явной передачи размера файла (В таком случае надо помнить что в зависимости от Content-Transer-Type размер файла может варьироваться) - или же специальной библиотеки для PHP-интерпретатора которая позволяет запустить PHP-код до полного получения POST-запроса


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB