ДА или НЕТ: может ли сервер отправить HTTP-ответ, одновременно загружая файл из соответствующего HTTP-запроса? - PullRequest
2 голосов
/ 25 января 2011

Если пользователь веб-сайта отправляет HTML-форму с: (1) методом публикации;(2) многочастный / форма-данные-энктип;и (3) большой вложенный файл, может ли сервер загрузить опубликованный файл и отправить сгенерированный сервером HTTP-ответ до завершения загрузки файла, без использования AJAX?

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

  <form action="upload-with-caption/" method="post" enctype="multipart/form-data">
    <input type="hidden" id="hiddenInfo" name="hiddenInfo" />
    File:     <input type="file" name="imgFile" id="imgFile" /><br />
    Caption:  <input type="text" name="caption" id="caption" />
        <input type="submit" />
  </form>

Я хочу сохранить заголовок в таблице базы данных с определением:

[files_table]

  • file_id [uniqueidentifier]
  • file_caption [varchar (500)]
  • file_status [int]

Затем я хочу загрузить файл в /root/{unique-id}/filename.ext.

сопоставление file_status сперечисление C # со следующим определением:

enum  FileUploadStatus{
    Error = 0,
    Uploading = 1,
    Uploaded = 2
}

Когда форма отправляется, если файл слишком велик для обработки в течение 1 секунды, я хочу отправить веб-странице ответ, который говорит, что в данный момент загружается.

Могу ли я сделать это с одним синхронным HTTP-сообщением?

Примечание: Я, очевидно, захочу проверить наличие обновлений статуса позже, используя AJAX, но этоэто не то, что этот вопрос задает.Я специально спрашиваю, может ли файл продолжить загрузку после отправки ответа.

1 Ответ

6 голосов
/ 25 января 2011

HTTP является синхронным протоколом.
Вы не можете отправить ответ, пока не получите полный запрос.

...