如果网站用户使用以下方式提交 HTML 表单: (1) post 方法; (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>
我想将标题存储在数据库表中,其定义如下:
[文件表]
- file_id [唯一标识符]
- 文件标题 [varchar(500)]
- 文件状态[整数]
然后我想将文件上传到/root/{unique-id}/filename.ext
.
file_status 映射到具有以下定义的 C# 枚举:
enum FileUploadStatus{
Error = 0,
Uploading = 1,
Uploaded = 2
}
当表单提交时,如果文件太大而无法在 1 秒内处理,我想向网页发回一个响应,说明当前正在上传。
我可以通过单个同步 HTTP post 来完成此操作吗?
注意:我显然想稍后使用 AJAX 检查状态更新,但这不是这个问题所要问的。我特意询问回复发送后文件是否可以继续上传。