2010-07-15 2 views
1

Есть ли способ в PHP использовать HTML-форму для загрузки только заголовка файла. Длина заголовка определяется в пределах первых нескольких байтов файла, я хочу, чтобы только эта часть ничего больше. После того, как я получил последний байт заголовка, я больше не хочу этого делать. Есть ли изящный способ сделать это в PHP или мне придется делать некоторые сокет-программирование?Частичная загрузка, загрузка только заголовка

ответ

3

На стороне PHP вы не можете изящно прекратить загрузку (HTTP-соединение). Клиент столкнулся бы с ошибкой «сброс соединения путем одноранговой сети» (или любым другим более дружественным ароматизированным сообщением, сделанным веб-браузером из ошибки). Лучшее, что вы можете сделать, это игнорировать прочитанные байты, но это не так (понятно?) Легко в PHP, так как это довольно высокий уровень языка.

На стороне HTML абсолютно невозможно загрузить только «заголовок» файла. Это полный файл или ничего. Существует множество различных форматов файлов, и HTML не имеет понятия ни о каком из них, не говоря уже о том, как отличить часть заголовка рассматриваемого файла.

Лучше всего написать небольшое приложение, которое будет обслуживаться веб-страницей и загружено на клиентскую машину и будет выполняться локально там. Это приложение должно иметь файл chooser/picker/opener, а затем программно определить «заголовок» и отправить его на сервер. Вы можете сделать это в аромате Java-апплета или MS Silverlight или, возможно, Adobe Flash.

+0

Я согласен с тем, что HTTP-соединение не может быть прервано изящно, и я решил, что это так. Я предполагаю, что единственный вариант заключается в том, чтобы затем запрограммировать демон PHP, который будет принимать переданные HTTP-данные, а затем использовать это. Это может быть не изящно, но это самое чистое PHP-решение, о котором я могу думать. Программирование сокетов тогда! –

Смежные вопросы