2011-04-13 4 views
1

Удаленные клиенты загружают изображения (и, возможно, некоторые учебные файлы в специально форматированном тексте) в папку «drop». После завершения загрузки нам нужно начать обработку этих изображений. Это было бы простое, но ошибочное решение, просто чтобы сценарий автоматически начинал обрабатывать любые файлы в папке каждые несколько секунд (файлы могут перемещаться из папки после обработки); но проблемы возникают при попытке обработать большие изображения, которые только частично переданы.Как определить, полностью ли переданы файлы в «папке с перепадом»

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

Несколько моих собственных мыслей: Скрипт может проверить правильность файла; т.е. частичный jpeg приведет к ошибке, и вы могли бы ответить на эту ошибку в скрипте, но это было бы довольно интенсивным CPU. Некоторые файлы имеют специальные маркеры в конце, но я не могу рассчитывать на это, я не уверен, в каких форматах я буду иметь дело.

Я слышал о «дескрипторах файлов», но на самом деле не понял основ того, что они есть, и как я могу определить, есть ли «дескриптор файла» для определенного файла. В основном FTP-демон (на самом деле, я нахожусь в Windows, поэтому «service») будет хранить «дескриптор» файла во время его загрузки, и вы не знаете, как обрабатывать этот файл. Это всего лишь некоторые из моих мыслей, но я не уверен, что они будут работать, или если есть более или менее приемлемые способы решения этой проблемы.

ответ

1

Если у вас есть серверная система загрузки скриптов (PHP, ASP, JSP, что угодно), вы можете дать указание сценарию вызвать другой скрипт для обработки файлов или создать файл флага, указывающий, что загрузка выполнена , что-то вроде этого.

Если ваш сервер основан на Linux, вы можете использовать lsof, чтобы проверить, открыт ли файл. Поскольку ваш ftp/script/cgi закроет файл после завершения загрузки, lsof не покажет файл в списке.

Если ваш сервер находится на базе Windows, вы можете использовать Process Explorer для отображения открытых файлов.

0

По каким методам пользователи загружают изображения?