一尘不染

是或否:服务器仍可以从相关的HTTP请求上载文件的同时发送HTTP响应吗?

ajax

如果网站用户使用以下内容提交HTML表单:(1)发布方法;(2)多部分/表单数据编码;(3)较大的附件,服务器可以在不使用AJAX的情况下上传文件,并在文件上传完成之前发送服务器生成的HTTP响应吗?

太密了。因此,我写了一个例子来说明我的意思。假设有一个带有标题字段的图片上传表单。

  <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检查状态更新,但这不是这个问题要问的内容。 我专门询问发送响应后文件是否可以继续上传。


阅读 217

收藏
2020-07-26

共1个答案

一尘不染

HTTP是一个同步协议。
在收到整个请求之前,您无法发送回复。

2020-07-26