12

我正在开发一个REST API,我有一些文件上传

当文件仅部分上传时, PHP 可能会生成UPLOAD_ERR_PARTIAL错误,我不确定在这种情况下应该使用哪个HTTP 状态代码。

如果用户取消上传,通常会发生这种情况(请参阅为什么文件只能部分上传php.net 上的文件上传错误

UPLOAD_ERR_PARTIAL 在文件数据后未找到 mime 边界时给出。一个可能的原因是用户取消了上传(按 ESC 等)。

4

7 回答 7

12

对于这种情况,您应该使用 409 状态代码。

根据http://www.ietf.org/rfc/rfc2616.txt

由于与资源的当前状态冲突,无法完成请求。
仅在预期用户可能能够解决冲突
并重新提交请求的情况下才允许使用此代码。响应正文应该包含足够的
信息让用户识别冲突的来源。
理想情况下,响应实体将包含足够的信息供用户或用户代理解决问题;但是,这可能是
不可能的,也不是必需的。

于 2013-09-04T04:56:42.157 回答
9

如果用户上传失败是因为他们上传的内容有问题,只需说:400 Bad Request

于 2013-08-14T14:58:22.457 回答
4

您不必发送任何状态代码,因为客户端已经断开连接。

于 2013-08-28T12:52:35.577 回答
2

我会选择 422(由于语义错误而无法执行请求)或 449(执行操作后应重试请求)。

看看httpstatuses.com

于 2013-08-19T13:50:52.577 回答
1

我认为标题应该基于错误上下文:

如果文件上传不是允许的类型:

  • HTTP_415 = '不支持的媒体类型'

如果文件上传太大:

  • HTTP_413 = '请求实体太大'

如果服务器有上传问题:

  • HTTP_500 = '内部服务器错误'

如果上传超时:

  • HTTP_504 = '网关超时'

但总的来说,我会说500是相当标准的。

于 2013-08-14T19:50:25.067 回答
1

UPLOAD_ERR_PARTIAL在文件数据后未找到 mime 边界时给出。

411 长度要求

请求没有指定其内容的长度,这是请求的资源所要求的

于 2013-09-03T15:58:12.267 回答
-1

我会用

408请求超时。因为它表明请求仅被部分发送(在这种情况下不支持)

400 Bad Request 看起来像是另一种选择。

您也可以使用非保留号码创建自己的号码。

但是如果请求被取消,你会在哪里发送响应?

于 2013-08-28T13:21:27.717 回答